Datei auslesen

#1
Guten Tag,

und zwar habe ich mich etwas mit dem Auslesen von Dateien beschäftigt, und mir ist folgendes aufgefallen:

Funktion zum Auslesen jeder Reihe:
PHP:
function auslesen($dateiname)
{
    $inhalt = file_get_contents($dateiname);
    $zeilen = explode("\n", $inhalt);
    $uZeilen = array();
    for ($z = 0; $z < count($zeilen); $z++){
        if ($zeilen[$z] != ""){
            $uZeilen[] = $zeilen[$z];
        }
    }
    //Spätere Ausgabe  
    print_r($uZeilen);
}
auslesen("test.txt");
Hierbei wollte ich alle Zeilen herausfiltern, welche leer sind (siehe if)
Vor dieser Abfrage bekam ich folgendes Ergebnis zurück:
PHP:
Array
(
    [0] => Hallo1
    [1] =>
    [2] => Hallo2
    [3] => Hallo3
    [4] =>
    [5] =>
    [6] =>
)
Ganz normal, Zeilenindex 1,4,5,6 sind leere Zeilen.

Jedoch bekam ich nach der Abfrage folgendes Ergebnis:
PHP:
Array
(
    [0] => Hallo1
    [1] =>
    [2] => Hallo2
    [3] => Hallo3
    [4] =>
    [5] =>
)
Anscheinend war nur Zeilenindex 6 wirklich == ""
Die anderen sind nicht "" sondern etwas anderes.
Bewies dieser Test:
PHP:
if ($zeilen[1] == ""){
  echo "Test1";
} else{
  echo "Test2";
}
//Ergebnis: "Test2"
Auch bei == " " griff auch wieder der Else-Zweig.

Meine Frage: Wie kann man das Problem lösen bzw. wie kann ich herausfinden, was der Inhalt von z.b
Index 1,4 oder 5 ist.

Mit freundlichen Grüßen
-Jack001
 
#2
Hi

es könnte zB. \r sein, dass bei Textdateien aus Windowsprogrammen oft bei jedem Zeilenwechsel dabei ist.
Oder ein oder mehrere Leerzeichen, aus irgendeinem Grund.
Beides entfernbar mit trim:
PHP:
if (trim($zeilen[$z]) != "")
 

Neue Beiträge