Angehängte leerstelle bei fgets()

  • Ich würde gerne aus einer Datei jede zeile einzeln herauslesen. Dazu habe ich folgendes gemacht:

    PHP
    while ($zeile) {
        $i++;
        $array[$i]=fgets($file, 10000);
        $zeile=$array[$i];
    }


    Funktioniert auch super, nur habe ich das Problem, das zumindest XAMPP an jeden ausgelesenen String eine Leerstelle macht. Aber das ganz komische ist, bei einer Zeile macht er es nicht, es ist auch nicht die Letzte. Deswegen abe ich mich gerade sehr gewundert.
    Auf jeden fall bitte ich um hilfe gegen die Leerzeichen. Danke im vorraus.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Warum benutzt du nicht die Funktion file? Außerdem ist die Schleife schlecht programmiert, denn du hängst auch ein Element rein, was es am Ende nicht gibt. Und mit trim bekommst du den Rest hin.

  • Welche element häng ich rein? UNd es klappt jetzt mit file, nur iwie weiss ich jetzt nciht genau, wei ich alle elemente da mit trim() bearbeiten soll. Eine For-Each Schleife wäre schon von Nützen, aberich weiss zu wenig über sie. So?:

    PHP
    for each ($array as $element) {
        $element=trim($element);
    }

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

    Einmal editiert, zuletzt von Tobse (3. September 2009 um 11:02)

  • Eine For-Each Schleife wäre schon von Nützen, aberich weiss zu wenig über sie.


    Steht doch alles in der Doku, musst du nur mal lesen und die Beispiele beachten!

  • Ok, danke ich habs gelöst. So:

    PHP
    $file=file("file.txt");
    $i=0;
    while($i<count($file)) {
        $array[$i]=trim($array[$i]);
        $i++;
    }

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Das wäre die simple Version, aber da man soetwa häufiger braucht: