PHP: Dateien öffnen, auslesen, verändern, ...

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

  • PHP: Dateien öffnen, auslesen, verändern, ...

    Hallo!
    Kann mir mal wer ne kleine Einführung geben, wie ich eine Datei öffne (fopen? file?), auslese und verändern kann.
    Ich will in eine TXT-Datei URL Referer speichern (Struktur: "URL; Anzahl", pro Referer eine Zeile), dabei sollen bestimmte Referer aussortiert, andere eingetragen werden und bei gleichen Referern die Anzahl um 1 erhöht werden.
    Nur als erstes habe ich das Problem, dass ich von Dateien und PHP keine Ahnung hab und php.net mich verwirrt! ^^
    Die Japaner glauben jetzt auch, sie könnten den Superrechner verkaufen. Das wäre
    so, als würde man einen Jumbo-Jet nehmen, vorne und hinten die Spitzen absägen,
    davon 10 Stück zusammenschweißen und als ultimativen Super-Jet verkaufen.
  • Ne zeile in eine datei schreiben geht so:

    Quellcode

    1. $fp = fopen("datei.txt","a");
    2. fwrite($fp, $neuezeile);
    3. fclose($fp);

    Wie immer ohne Gewähr ;)
    Ne interessante Funktion ist <a href='http://de.php.net/file' target='_blank'>file()</a>, weil damit die Datei zeilenweise in ein Array gelesen wird. D.h. man kann mittels dieser Fuktion die Datei über eine for-schleife oder <a href='http://de.php.net/array_walk' target='_blank'>array_walk()</a> zeilenweise ausgeben, ähnlich wie bei MYSQL die while-schleife mit mysql_fetch_array.
    Das unpraktische am Umgang mit Dateien ist, dass man nicht so ohne weiteres eine Zeile oder ein Wort löschen muss. Dafür gibts keine Funktion oder so. Das muss man manuell machen. Indem man die Datei überschreibt mit einer anderen, die das, was gelöscht werden soll, nicht enthält. Auch dabei erhält <a href='http://de.php.net/file' target='_blank'>file()</a> wieder eine zentrale Bedeutung.
    Fürs Auslesen wirst du wahrscheinlich auch noch die Funktion <a href='http://de.php.net/explode' target='_blank'>explode()</a> brauchen.