Frage zu fgets()


  • cweith
  • 1042 Aufrufe 3 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Frage zu fgets()

    hi!

    also mei fragen werdn auch immer blöder, aber ich hab leider kein php-buch (krieg ich erst zu weihnachten :) )

    und zwar kann ich mit fgets() ja den inhalt einer datei auslesen:

    Quellcode

    1. $datei = fopen ("db.txt","r");
    2. $output = fgets($datei, 6);
    3. echo $output;


    so, jetz hab ich also die ersten sechs zeichen einer datei "db.txt" in der variable $output gespeichert und anschließend mit echo ausgegeben...

    nun die frage:
    wie speicher ich jetz z.b. zeichen 7 bis 13 aus der "db.txt" in $output?!? :confused:

    ich weiss des is blöd aber vll erbarmt sich einer mir?!? PLZ!!!


    thanx
    christoph
  • kannst du die Daten in deine db.txt nicht mit einem Platzhalter abspeichern?

    zB.

    $platzhalter="looooooool"; (irgendwas, das sicher NIE eigetragen wird)

    und in der db.txt speicherst du dann immer deine Daten, dann ein Platzhalter,
    dann die nächsten daten, Platzhalter, Daten.... usw....

    dann kannst du deine Werte einfacher abrufen. (explode)

    PHP-Quellcode

    1. // ---->>> Schreiben
    2. $daten1 = "Kuchen";
    3. $daten2 = "Gummibärchen";
    4. $daten3 = "HotDogs"
    5. $t1 = "looooool"; // Trennzeichen (Platzhalter)
    6. $myfile = "db.txt";
    7. $createfile = fopen($myfile,"w");
    8. $temp = $daten1.$t1.$daten2.$t1.$daten3; // das wird in die Datei geschrieben
    9. $temp = eregi_replace(" ", " ", $temp);
    10. fwrite($createfile,$temp); // Datei Erstellen
    11. fclose($createfile);
    Alles anzeigen


    PHP-Quellcode

    1. // ---->>> LESEN
    2. $t1 = "looooool"; // Trennzeichen (Platzhalter)
    3. $myfile = "db.txt";
    4. $fp = fopen("$myfile","r");
    5. $bytes = filesize("$myfile"); // Dateigrösse
    6. while ($zeile = fread($fp,$bytes)) // Alles Auslesen
    7. {
    8. $alle = explode($t1, $zeile); // Trennen der Daten von den Trennzeichen
    9. }
    10. fclose ($fp);
    11. list($daten1, $daten2, $daten3) = $alle; // Variablen Zuordnen
    12. // soviele du eben hast... wenn du nur 2 hast, musst du nach $daten2 stoppen
    13. echo "$daten1 <br>"; // = Kuchen
    14. echo "$daten2 <br>"; // = Gummibärchen
    15. echo "$daten3"; // = HotDogs
    Alles anzeigen


    ...alles Ungetestet ! sollte aber funktionieren
    -> nur nicht Aufgeben ;)
  • ich würde einfach die function
    fseek(), dafür nehmen !
    Beispiel:

    PHP-Quellcode

    1. <?PHP
    2. $datei=fopen("bla.txt","r");
    3. fseek($datei,5);
    4. $bla = fgetss($datei,6);
    5. echo $bla;
    6. ?>


    so habs jetzt nicht geteset müsste aber gehen !

    bis denne
    Falk

    edit:
    Da der server gerade ma wieder ausgelastet war habe ich es doch getestet ^^
    bla.txt:

    Quellcode

    1. 1234567890abcdefg


    Ausgabe:

    Quellcode

    1. 67890

    bis denne²
    Falk