php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.05.2008, 20:52  
Erfahrener Benutzer
 
Registriert seit: 20.09.2004
Beiträge: 471
Skazi
Standard Textdatei öffnen und Zeilenweise löschen

Hallo!

Ich habe eine kleine Funktion, welche eine Textdatei öffnet und Zeilenweise ausliest. Nun mag ich aber, dass jede Zeile die erfolgreich ausgelsen wurde dann in der Datei gelöscht wird, und somit der 2te Eintrag an erster Stelle steht.

Also so:

Text.txt:

Eintrag1
Eintrag2
Eintrag3

Dann lese ich aus:

Eintrag1

text.txt:
Eintrag2
Eintrag3

Ich lese aus:
Eintrag2

text.txt:
Eintrag3

ich lese aus:
Eintrag3

text.txt
<leer>



Kann mir da jemand ein wenig behilftlich sein - ich weiss nicht wie ich die derzeit geöffnete Zeile lösche.

Achja ... zeile für Zeile lese ich via while aus:

while (!feof($file_hanlde)
{
....fgets....
}
__________________
Was sich da wohl hinter verbirgt ? guck doch
Frohes Fest
Skazi ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.05.2008, 00:35  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Dann nimm doch einen Zähler der bis zur x-ten Zeile zählt (bei dir dann die Zweite) und schreibe AB der x-ten Zeile alle Zeilen in eine Variable die du später wieder in die Datei speicherst. Inetwa so:

PHP-Code:
<?php
$i 
0;
$content '';
while (...) {
    
$i++;
    if (
$i 1) {
        
$content .= $aktuelle_zeile;
    }
}

// hier $content in die Datei speichern
?>
Flor1an ist offline  
Alt 02.05.2008, 04:56  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hallo,
dafuer gibts bereits die file() Funktion, bei der du allerdings beachten musst, dass das Zeilentrennzeichen mit im Array-Element bleibt.

Wie waere es hiermit:
PHP-Code:
<?php
$strFilename 
"my-text-file.txt";
$arrFile file($strFilename);
for (
$i 0$x count($arrFile); $i $x; ++$i) {
  
$strRow rtrim($arrFile[$i]);
  
// .. auslesen
  
  // und jetzt rausschmeissen:
  
unset($arrFile[$i]);
}
file_put_contents($strFilenameimplode($arrFile));
?>
implode funktioniert soweit ich weiss auch ohne 1. Parameter und sollte auch einen Array mit fragmentiertem Index korrekt behandeln. Wenn nicht kannst du mit $arrFile = array_merge($arrFile) den Index einfach neu schreiben lassen.

Vergiss nicht, solltest du die Zeile doch nicht loeschen sondern nur bearbeiten, dass du auch hier wieder den Zeilenumbruch manuell an dein $strRow bzw. $arrFile[$i] anhaengen musst, da wir fuer implode() ja den Leerstring verwenden und du sonst mehrere Zeilen zu einer zusammenfassen wuerdest.
Zergling-new ist offline  
Alt 02.05.2008, 07:02  
CIX88
Gast
 
Beiträge: n/a
Standard

Wobei ich bei größeren Dateien nicht unbedingt file() benutzen würde, sonst ist das ja vollkommen ok. file_put_contents() ist auch teilweise bei einigen Hostern nicht aktiv
 
Alt 02.05.2008, 09:31  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Bei groesseren Dateien bietet sich aber sowieso eher die Datenbank an =)
Zergling-new ist offline  
Alt 02.05.2008, 09:35  
CIX88
Gast
 
Beiträge: n/a
Standard

Jo wenn man eine hat
 
Alt 02.05.2008, 09:38  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

PHP aber keine DB, das waere schon sehr merkwuerdig .. Aber gibt doch auch SQLite oder wie das heisst. Hat das eigentlich mal jemand ausprobiert?
Zergling-new ist offline  
Alt 02.05.2008, 13:28  
CIX88
Gast
 
Beiträge: n/a
Standard

Ich habe vor etlichen Jahren mal ein Hosting genommen (PHP3-Zeiten), wo es kein DB dazu gab (war damals noch nicht Standard). Da musste ich (leider) vieles mit TXT & Co erledigen. SQLite hab ich noch nie ausprobiert.
 
Alt 02.05.2008, 15:59  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Nur weil du vor "etlichen" Jahren so ein Hosting genommen hast musst du doch JETZT nicht mehr deswegen auf Textdateien setzen.

Ein Hostwechsel ist mehr als einfach und gute Tarife gibt es wie Sand am Meer. Und Datenbanken sind überall dabei!
__________________
▇█▓▒░◕‿‿◕░▒▓█▇
Flor1an ist offline  
Alt 02.05.2008, 16:12  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Ein Hostwechsel ist mehr als einfach und gute Tarife gibt es wie Sand am Meer. Und Datenbanken sind überall dabei!
aber wie ich immer mehr mitbekomme, keine verlässlichen server....
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Textdatei erstellen - Inhalt mit Variablen füllen DDogg PHP Tipps 2006 3 25.09.2006 13:44
Variable als Textdatei Lokal speichern HSFighter PHP Tipps 2006 3 28.02.2006 12:13
[Erledigt] mit php umlaute un Textdatei schreiben (Apple Tiger PHP4) PHP Tipps 2007 7 29.12.2005 19:08
Zeilenweise im Bild PHP Tipps 2005-2 5 07.10.2005 23:31
Textdatei vollständig löschen socke PHP Tipps 2005-2 3 21.08.2005 16:02
Textdatei ein Tabelle einfügen Datenbanken 12 12.08.2005 19:12
[Erledigt] einfache textdatei PHP Tipps 2005 2 19.05.2005 13:26
Textdatei durchsuchen CSS PHP Tipps 2005 3 26.02.2005 15:31
Zeilenweise eine Textdatei auslesen PHP Tipps 2004 12 29.10.2004 10:29
Newsscript Ã* la Textdatei PHP Tipps 2004 10 10.09.2004 22:56
Eintrag aus Textdatei löschen? PHP Tipps 2004 1 04.09.2004 18:21
Textdatei auslesen und Dateien downloaden PHP Tipps 2004 1 15.08.2004 13:05
Mit PHP den Inhalt einer Textdatei in eine Tabelle einfüllen Stümper PHP Tipps 2004 3 09.08.2004 13:18
Textdatei in Array einlesen PHP Tipps 2004 8 07.08.2004 16:42
[Erledigt] include einer bestimmten Zeile einer Textdatei PHP Tipps 2004 2 14.07.2004 01:54

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
txt öffnen und löschen, inhalt löschen und neu schreiben php, zeilen weiße alles löschen php, php alles vor löschen txt öfnen datei, sqlite zeilen zusammenfassen mit bestimmten trennzeichen, php öffnen mit zeilenanzahl, textdatei teilweise öffnen, php textdatei öffnen alle zeilen löschen, textdatei zeilen löschen, php mit zeilen öffnen, *.sqlite öffnen, http://www.php.de/php-tipps-2008/45867-textdatei-oeffnen-und-zeilenweise-loeschen.html, php zeile einer textdatei neuschreiben, zeilen mit bestimmten inhalt löschen txt, textdatei zeilen entfernen, php script zum zeilenweisen auslesen von text, text-datei öffnen, txt file ab trennzeichen beschreiben php, php .txt öffnen bearbeiten, wie braucht man zeilentrenner in einer textdatei

Alle Zeitangaben in WEZ +1. Es ist jetzt 20:36 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.