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

Ungewollter Zeilenumbruch

Dieses Thema im Forum "PHP" wurde erstellt von -Jack001, 31. Dezember 2016.

  1. -Jack001

    -Jack001 Mitglied

    Guten Abend,

    ich habe mich in der letzten Zeit mit der Verwaltung von CSV Dateien beschäftigt.
    Hierbei ist mir ein Fehler aufgefallen, welchen ich leider nicht lösen kann.

    -Konzept:
    Code (Text):
    1. 1(//)Max
    2. 2(//)Peter(//)Meier
    3. 3(//)Gabriel(//)Steiner
    4. 4(//)Wolfgang(//)Peters
    5.  
    6.  
    7. 5(//)Klaus(//)Klausen
    8. 6(//)Dieter(//)Mueller
    Ich möchte eine CSV Datei auslesen. Anfangs hole ich mir den Inhalt über file_get_contents und füge die Zeilen in ein Array ein. Durch eine Schleife füge ich diese Werte in ein weiteres Array ein, wo ausschließlich Zeilen mit Inhalt drinnen stehen.
    Code (Text):
    1.     [0] => Array
    2.         (
    3.             [0] => 1
    4.             [1] => Max
    5.         )
    6.  
    7.     [1] => Array
    8.         (
    9.             [0] => 2
    10.             [1] => Peter
    11.             [2] => Meier
    12.         )
    13.  
    14.     [2] => Array
    15.         (
    16.             [0] => 3
    17.             [1] => Gabriel
    18.             [2] => Steiner
    19.         )
    20.  
    21.     [3] => Array
    22.         (
    23.             [0] => 4
    24.             [1] => Wolfgang
    25.             [2] => Peters
    26.         )
    27.  
    28.     [4] => Array
    29.         (
    30.             [0] => 5
    31.             [1] => Klaus
    32.             [2] => Klausen
    33.         )
    34.  
    35.     [5] => Array
    36.         (
    37.             [0] => 6
    38.             [1] => Dieter
    39.             [2] => Mueller
    40.         )

    Da es leere Zeilen gab, soll die Datei aktualisiert werden.
    Dies habe ich so realisieren können:
    PHP:
    1. $inhalt = "";
    2. for ($z = 0; $z < count($zeilen); $z++){
    3.     if (!isset($zeilen[$z])){
    4.         while (!isset($zeilen[$z])){
    5.             $z++;
    6.         }
    7.     }
    8.         $inhalt .= (implode($delimiter, $zeilen[$z])) /* . "\n" */;
    9.         $inhalt .= "\n";
    10. }

    Bei der oben benannten Situation (leere Zeilen) funktioniert dies wunderbar.
    Jedoch habe ich nun folgendes Problem:

    Ich lasse die einzelnen Zeilen noch auf Vollständigkeit prüfen.
    PHP:
    1. if (!isset($inhalt[$z][$s])){
    2.                     $inhalt[$z][$s] = 'LEER!';
    3.  
    4.                 }
    Sollte ein Wert fehlen wird er durch leer ersetzt! (Erste Zeile)

    Nun soll die Datei mit diesem Array aktualisiert werden:
    Code (Text):
    1. [0] => Array
    2.         (
    3.             [0] => 1
    4.             [1] => Max
    5.             [2] => LEER!
    6.         )
    7.  
    8.     [1] => Array
    9.         (
    10.             [0] => 2
    11.             [1] => Peter
    12.             [2] => Meier
    13.         )
    14.  
    15.     [2] => Array
    16.         (
    17.             [0] => 3
    18.             [1] => Gabriel
    19.             [2] => Steiner
    20.         )
    21.  
    22.     [3] => Array
    23.         (
    24.             [0] => 4
    25.             [1] => Wolfgang
    26.             [2] => Peters
    27.         )
    28.  
    29.     [4] => Array
    30.         (
    31.             [0] => 5
    32.             [1] => Klaus
    33.             [2] => Klausen
    34.         )
    35.  
    36.     [5] => Array
    37.         (
    38.             [0] => 6
    39.             [1] => Dieter
    40.             [2] => Mueller
    41.         )

    In der Datei erhalte ich folgendes Resultat:
    Code (Text):
    1. 1(//)Max
    2. (//)LEER!
    3. 2(//)Peter(//)Meier
    4. 3(//)Gabriel(//)Steiner
    5. 4(//)Wolfgang(//)Peters
    6. 5(//)Klaus(//)Klausen
    7. 6(//)Dieter(//)Mueller

    Meine Frage ist wieso dieser Zeilenumbruch passiert... (Zeile 2)

    Vielleicht weiß ja jemand weiter.


    Guten Rutsch ins neue Jahr
    Mfg
     
  2. EuroCent

    EuroCent KlappStuhl 2.0

    Code (PHP):
    1. $inhalt .= (implode($delimiter, $zeilen[$z])) /* . "\n" */;
    Durchaus wird es an dem liegen "\n".
    Entferne es mal und prüfe nochmal :)
     
  3. -Jack001

    -Jack001 Mitglied

    Danke für deine Antwort,

    leider hat das entfernen nichts gebracht.
    Da keine Zeilenumbrüche gesetzt werden, kann man leider nicht die Textdatei aktualisieren.
    Dies wäre dann im folgenden Schritt wichtig
    Wenn es eine leere Zeile gab, und der Inhalt neu reingeschrieben wird, werden keine Zeilenumbrüche gesetzt.
    -> Es entsteht ein langer, durchgehender String.
     
  4. EuroCent

    EuroCent KlappStuhl 2.0

    Du kannst ja auch Prüfen, ob es eine Leerezeile gibt und diese entsprechend rausfiltern ;)
     
  5. -Jack001

    -Jack001 Mitglied

    Guten Abend,
    ich habe die Werte nun durch zwei Schleifen laufen lassen, um die Werte des Arrays reihenweise auszugeben.
    Anhand der Funktion nl2br konnte ich feststellen, dass ein Zeilenumbruch nach dem Arrayindex [1][1] gesetzt wird

    1Max
    LEER!!2PeterMeier
    3GabrielSteiner
    4WolfgangPeters
    5KlausKlausen
    6DieterMueller
     
  6. -Jack001

    -Jack001 Mitglied

    Es scheint so, als wäre das Problem gelöst!

    Ich fand die Lösung unter einem Thread von mir, welchen ich letztes Jahr erstellt habe:

     
Die Seite wird geladen...