tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
17777
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    abi22 abi22 ist offline Rookie
    Registriert seit
    Oct 2004
    Beiträge
    5
    Hallo!

    Wer kann mir bitte helfen?

    Eine .txt Datei mit beispielsweise folgendem Inhalt:

    Abbe---->Günther---->Strasse---->Ort---->Land
    Becker---->Boris----->Strasse---->Ort---->Land---->Telefon
    Cullmann---->Carsten---->Strasse---->Ort---->Land----->Telefon---->Homepage----->Fax

    Diese Datei möchte ich nun mit PHP zeilenweise einlesen.
    Zudem möchte ich auch noch die Reihenfolge der Daten ändern. Z.B.:

    Strasse---->Ort---->Land---->Günther---->Abbe etc.

    Bei meinen Versuchen ergaben sich folgende Probleme:
    Es wurde zeilenweise eingelesen, jedoch nur bis zu einem bestimmten Zeichen
    und unvollständig. Die Ausgabe ist z.B. so:
    Abbe---->Günther---->Strasse---->Ort---->Land
    ris----->Strasse--->Ort---->Land---->Telefon---->Cullmann
    Carsten---->Strasse..... Also ein durcheinander.


    So sieht mein Programm aus:


    <?php
    $fp = fopen('export-auftrag.txt', 'r');
    while (!feof($fp))
    {
    $zeile = fgets($fp,100);
    $daten = explode("\t", $zeile);
    echo "$daten[0]\t$daten[1]\t$daten[2]\t$daten[3]\t$daten[4]\t$daten[5]\t
    $daten[6]\t$daten[7]\t$daten[8]<br>;
    }
    fclose($fp);
    ?>

    Wie kann man das bitte realisieren
    Vielen Dank für Eure Hilfe!
    Geändert von abi22 (11.10.04 um 11:31 Uhr)
     

  2. #2
    Avatar von Nils Hitze
    Nils Hitze Nils Hitze ist offline Admin a.D.
    Registriert seit
    Sep 2000
    Ort
    Dachau
    Beiträge
    2.201
    Blog-Einträge
    104
    mein Vorschlag ... benutze in Zukunft vernünftige CVS Trenner und achte auf konsistente Daten.
    Das heißt :

    Name,Vorname,Strasse,Ort
    Name,,Strasse,Ort
    Name,Vorname,,

    Wenn du eine neue Zeile beginnst, diese aber weniger Inhalt hat müssen dennoch die
    Trennzeichen vorhanden sein.

    Zu deinem Problem :
    Ich würde die Datei über file() einlesen, exploden, dann sortieren.

    Gruß,
    Nils
     

  3. #3
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi,

    nur auf den ersten Blick, aber ich vermute mal:

    fgets($fp,100); <-- damit begrenzt Du die Zeilenlänge beim Einlesen auf 100 Bytes. Wenn Deine Zeile mehr Bytes enthält, wird sie notwendigerweise zerrissen.

    Gruß

    EDIT: hmm, wieder mal einen Tick zu spät. Ansonsten: Wie Nils sagte - mit file() geht es sicher eleganter.
     

  4. #4
    abi22 abi22 ist offline Rookie
    Registriert seit
    Oct 2004
    Beiträge
    5
    Das Problem ist nur, dass diese "Trenner" beim Export der Daten schon so eingefügt werden!
    Also muss ich auch damit arbeiten. Und da diese Daten auch in eine Datenbank eingefügt werden sollen, und diese tabdelimitted arbeitet muss diese Form beibehalten werden.
     

  5. #5
    abi22 abi22 ist offline Rookie
    Registriert seit
    Oct 2004
    Beiträge
    5
    Hab ne Frage könnte einer von euch mir mal eine Bsp.-Programm zeigen wie man das nach euren Vorstellungen lösen könnte.
     

  6. #6
    Lukasz Tutorials.de Gastzugang
    PHP-Code:
    $datei=file("pafadzurdatei");
    {
    unset(
    $inhalt,$eintrage);
    for (
    $i=0;$i<count($datei)+1;$i++){ // Wir lesen die gesammte Datei in die Variable $inhalt
    $inhalt .="$datei[$i]";
    }
    // Wir erzeugen einen array
    $eintrage=explode('---->',$inhalt);
    // so jetzt hast du die Einträge in einem array $eintrage[0] ist erster Eintrag
    // $eintrage[1] der zweite usw.
    }
    // Du kannst auch alle ausgeben
    // mittels count() kannst du zählen wieviel einträge eine Datei hat
    for ($i=0;$i<count($eintrage);$i++){ //$i ist null so lange bis die anzahl im array erreicht ist
    // im schrittakt +1 (++) bedeutet eine Variable wird um eins erhöht
    echo "$eintrage[$i]<br>"// da jetzt $i mal 0,1,2,3 bekommst du alle Einträge raus



    PS
    wegen Datei zeilenweise in Array einlesen!
    PHP-Code:
    $datei=file("pafadzurdatei"); 
    $datei ist jetzt dann schon ein array mit den Zeilen!
    Geändert von Lukasz (12.10.04 um 13:25 Uhr)
     

Ähnliche Themen

  1. Datei zeilenweise einlesen - aber nicht die erste Zeile
    Von FoolMoon im Forum Java Grundlagen
    Antworten: 2
    Letzter Beitrag: 13.02.10, 19:22
  2. Datei Zeilenweise einlesen
    Von dtm im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 02.08.09, 17:13
  3. Antworten: 6
    Letzter Beitrag: 15.12.05, 12:06
  4. Datei zeilenweise einlesen
    Von Shadow im Forum Java
    Antworten: 2
    Letzter Beitrag: 10.10.04, 21:28
  5. array in txt zeilenweise einlesen
    Von cb_master im Forum PHP
    Antworten: 5
    Letzter Beitrag: 26.11.02, 20:07