Vor einer Weile machte ich einen Beitrag (Searching for a specific string from all PHP files in the parent directory), die über mich die Position des Dateipfads in einem Array fand, nur wenn die Datei eine hatte spezifisches SchlüsselwortSuche nach einer bestimmten Zeichenfolge aus allen PHP-Dateien im übergeordneten Verzeichnis (Aktualisiert)
Allerdings war das in meiner alten Website, die ich jetzt verloren habe. Also erstelle ich es gerade neu. Aus irgendeinem Grund funktioniert diese Funktion jedoch nicht.
public function build_active_theme() {
$dir = CONPATH . '/themes/' . $this->get_active_theme() . '/';
$theme_files = array();
foreach(glob($dir . '*.php') as $file) {
$theme_files[] = $file;
}
$count = null;
foreach($theme_files as $file) {
$file_contents = file_get_contents($file);
if(strpos($file_contents, 'Main')) {
$array_pos = $count;
$main_file = $theme_files[$array_pos];
echo $main_file;
}
$count++;
}
}
Diese Funktion verursacht die folgenden Fehler:
Notice: Undefined index: in /home/u841326920/public_html/includes/class.themes.php on line 30
Ich habe das Problem auf dem etwas falsch mit dem $ Zählvariable verengt. Immer wenn ich versuche, den $ count-Wert wiederzugeben, sobald das Skript die richtige Datei gefunden hat, wird nichts angezeigt.
Aber nachdem ich fast eine Stunde mit so einem einfachen Problem verbracht habe, fängt es offensichtlich an, mich zu frustrieren, also suche ich jetzt Hilfe.
(Hinweis: Ich habe die Funktion direkt aus dem alten Post in meinen Code kopiert und die entsprechenden Änderungen an den Variablen vorgenommen, damit sie in der neuen Site funktionieren, also ist es genau so wie die behobene Lösung mein vorheriges Problem - was komischerweise auch durch die Variable $ count verursacht wurde.
Danke, Kieron
Ausgezeichnet, es hat funktioniert! Vielen Dank! Edit: Ich werde als Antwort markieren, sobald ich dazu in der Lage bin. – Sutton
Randnotiz: 'strpos()' könnte 0 zurückgeben, wenn 'Main' das erste Wort des Inhalts ist. Sie können '! == false 'hinzufügen, um sicherzustellen, dass es nicht gefunden wird. Ich habe es in meiner Antwort aktualisiert. – M4tini
Danke! Ich schätze die Verbesserung sehr und habe sie implementiert. Nochmals vielen Dank! – Sutton