Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Ordnerinhalt in txt schreiben [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Ordnerinhalt in txt schreiben


 
Grabber66
26-02-2004, 23:55 
 
Was ich mir vorstelle ist, das bei einem Aufruf einer Seite eine Textdatei
ausgelsen wird. Wie das klappt, ist mir klar. Nur das die Textdatei auch
noch erstellt werden soll. Und zwar aus dem Inhalt eines Ordners.
Dieser ist mit txt-dateien gefüllt. z.B.:
abc.txt
test.txt
xyz.txt

Den Inhalt wollte ich so auslesen :

handle=opendir('texte/');
while ($file = readdir ($handle)) {
if ($file != "." && $file != "..") {
echo "$file<br>\n";
}
}
closedir($handle);

So bekomme ich den Inhalt schonmal formatiert ausgegeben.
Doch nun soll der in eine Neue Textdatei geschrieben werden.
Und zwar ohne ".txt", also so :
abc
test
xyz

Ich denke, das ich das wohl erst mit explode aufteilen muss,
und dann mit fwrite reinschreiben sollte.
Doch wie ich das anstellen soll ?????
Ich scheitere vorallem bei der überlegung, das der File ja erstmal
geleert werden muss, um ihn dann neu zu füllen. Denn bei einem
wiederholten aufruf der Seite, sollen die Inhalte ja nicht doppelt
vorkommen.

Kann mir hier jemand weiterhelfen.

 
derHund
27-02-2004, 00:02 
 
hmm,

fopen mit 'w' ?
'w' - Öffnet die Datei nur zum Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert wird versucht sie anzulegen.

 
Grabber66
27-02-2004, 00:28 
 
Beim schreiben bin ich noch nicht, werd es aber im hinterkopf behalten.
Noch bin ich beim auswerten. Ich hab es mal so probiert:

$intern = opendir('texte/');
while ($file = readdir ($intern))
{
if ($file != "." && $file != "..")
{
for ($i=0;$i<count($file);++$i)
{
$ordner = explode(".",$file[$i]);
echo $ordner[1];
}
}
}

Aber das ist es noch nicht. Bekomme aber im Browser weder den Inhalt,
noch ne Fehlermeldung. Also was ist Falsch.
Hat jemand ne Idee?

 
derHund
27-02-2004, 00:52 
 
$fp = fopen ('neues.txt', 'w');
$intern = opendir('texte/');
while ($file = readdir ($intern))
if ($file != "." && $file != "..")
fwrite ($fp, substr($file,0, sizeof($file)-4).'\n');
fclose($fp);

ungetestet.

 
Grabber66
27-02-2004, 09:55 
 
Besten Dank,
hat soweit funktioniert. ich musste nur eine Zeile etwas abändern :
fwrite ($fp, substr($file,0, sizeof($file)-5)."\r\n");

Aber nun lüppt es 1a.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:01 Uhr.