1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Datei auslesen

Dieses Thema im Forum "PHP" wurde erstellt von dUser, 27. November 2016.

  1. dUser

    dUser Mitglied

    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:
    1. function auslesen($dateiname)
    2. {
    3.     $inhalt = file_get_contents($dateiname);
    4.     $zeilen = explode("\n", $inhalt);
    5.     $uZeilen = array();
    6.     for ($z = 0; $z < count($zeilen); $z++){
    7.         if ($zeilen[$z] != ""){
    8.             $uZeilen[] = $zeilen[$z];
    9.         }
    10.     }
    11.     //Spätere Ausgabe  
    12.     print_r($uZeilen);
    13. }
    14. auslesen("test.txt");
    Hierbei wollte ich alle Zeilen herausfiltern, welche leer sind (siehe if)
    Vor dieser Abfrage bekam ich folgendes Ergebnis zurück:
    PHP:
    1. (
    2.     [0] => Hallo1
    3.     [1] =>
    4.     [2] => Hallo2
    5.     [3] => Hallo3
    6.     [4] =>
    7.     [5] =>
    8.     [6] =>
    9. )
    Ganz normal, Zeilenindex 1,4,5,6 sind leere Zeilen.

    Jedoch bekam ich nach der Abfrage folgendes Ergebnis:
    PHP:
    1. (
    2.     [0] => Hallo1
    3.     [1] =>
    4.     [2] => Hallo2
    5.     [3] => Hallo3
    6.     [4] =>
    7.     [5] =>
    8. )
    Anscheinend war nur Zeilenindex 6 wirklich == ""
    Die anderen sind nicht "" sondern etwas anderes.
    Bewies dieser Test:
    PHP:
    1. if ($zeilen[1] == ""){
    2.   echo "Test1";
    3. } else{
    4.   echo "Test2";
    5. }
    6. //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. sheel

    sheel I love Asm Administrator

    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:
    1. if (trim($zeilen[$z]) != "")
     
    dUser gefällt das.
  3. dUser

    dUser Mitglied

    Danke dir sheel!
    Konnte das Problem mit trim() lösen!
     
Die Seite wird geladen...