Arraywert mit String vergleichen

Sheyen

Grünschnabel
Hallo, ich möchte Textdateien auslesen und den Wert der ersten Zeile mit einem String vergleichen.
Allerdings klappt das nicht so ganz. Es gibt keine Fehlermeldung, aber je nach Variation zeigt er mir entweder gar keine Werte an oder aber für jede Textdatei, auch wenn da nicht der abgefragte Wert drinsteht.Ich hoffe ihr könnt mir helfen.Ich habs mit foreach , while und if versucht aber finde dne blöden Fehler nicht.Vieleicht hab ich einfach schon zu lange draufgeguckt und ueberseh ihn deshalb.

Hier mal eine von den Varianten:

PHP:
 <?
                $value = "Global";
                $plang = array();
                $ordner=opendir("lang/");
                while(($datei=readdir($ordner))!=false) {
                    if (preg_match("/^.+.txt$/i",$datei)) {
                        $plang = file("lang/$datei");
                    }
                    if (in_array($value, $plang)) echo "$plang[0]<br>";
                }
            ?>
 
Vielen Dank, dennoch habe ich wohl irgendwo einen Denkfehler:

denn weder:

PHP:
<?
                $value = "Global";
                $plang = array();
                $ordner=opendir("lang/");
                while(($datei=readdir($ordner))!=false) {
                     if (preg_match("/^.+.txt$/i",$datei)) {
                        $plang = file("lang/$datei");
                    }
                    trim($plang);
                    if (in_array($value, $plang)) echo "$plang[0]<br>";
                }
?>

noch:

PHP:
<?
                $value = "Global";
                $plang = array();
                $ordner=opendir("lang/");
                while(($datei=readdir($ordner))!=false) {
                     if (preg_match("/^.+.txt$/i",$datei)) {
                        $plang = file("lang/$datei");
                    }
                    trim($plang[0]);
                    if ($plang[0] = $value) echo "$plang[0]<br>";
                }
?>

führen zum gewünschten Ergebnis.In beiden fällen bleibt die Ausgabe leer.
Es sind allerdings drei von acht .txt-Dokumenten existent die mit der Zeile Global beginnen.


ein einfaches echo ohne Abfrage gibt mir folgendes aus:

Global
Global
Global
Europa
Asien
Europa
Europa
Europa
 
Soooo,
sorry für den Doppelpost, aber ich halte hier einen Edit für unangebracht.Möge ein Mod darüber entscheiden.
Problem ist gelöst.Und das Zauberwort lautet Funnktionskenntnis.

PHP:
<?
	$value = "/Global/";
	$plang = array();
	$ordner=opendir("include/lang/");
	while(($datei=readdir($ordner))!=false) {
		if (preg_match("/^.+.txt$/i",$datei)) {
			$plang = file("include/lang/$datei");
			$datei = preg_replace("/.txt$/i","",$datei);
			if(preg_grep($value, $plang)) {
				ECHO"<a href='index.php?lang=$datei'>$plang[1]</a><br>";
			}
		}
	}
?>
 
Zuletzt bearbeitet:
Zurück