[PHP] Eingaben in Datei speichern

karuso

Captain
Registriert
Juni 2001
Beiträge
4.079
Eingaben in datei speichern

Ist es möglich mit html/php daten in eine datei hinzuzufügen?
Ich bräuchte eine möglichkeit in eine datei immer in zeile 10 einen neuen text einzufügen(ähnlich einem newsscript)
Das ganze sollte in ein formular eingegeben werden und dann mit ein paar zusatzdaten in zeile 10 der datei hinzugefügt werden.

In das Formular kommen 2 felder:
titel: (=$titel)
id: (=$id)

die beiden werte sollen dann im stil
-neu-
<title>$titel</title>
<url>www.bacabi.org/new/title.php?id=$id</url>

in die datei geschrieben werden ohne den rest zu löschen oder zu überschreiben.

Ich hoffe ihr wisst was ich meine und könnt mir helfen...
 
Hi,

also wenn du es immer hinten ranhängen willst, dann geht das ganz leicht.

PHP:
$datei = fopen('datei.txt','a');

fputs($datei,$title);

fclose($datei);

Du musst nur aufpassen, dass die Datei die entsprechenden Rechte besitzt, dass du schreiben kannst!

Ich hoffe, das war das, was du meinst.

Gruß,
sabelrider
 
thx. das mit dem reinschreiben ist schon ganz gut. am liebsten wäre es mir wie gesagt dass es immer in eine bestimmte zeile hinzugefügt werden soll, da ein header und ein footer in der datei sind. wenn es nicht anders geht werde ich es wohl mit deinem vorschlag probiern.
 
Soll denn immer die 10. zeile ausgetauscht werden oder soll immer ein ganzer Block angehängt werden?

also z.B. so:

-neu-
<date>2.1.2004</date>
<title>blabla2</title>
<url>http://www.bla2.de</url>
-neu-
<date>1.1.2004</date>
<title>blabla</title>
<url>http://www.bla.de</url>

Ich versteh nicht ganz, was du meinst :)

Gruß,
sabelrider
 
Hi,

Dann kannst dus mit meinem Beispiel von oben machen:

PHP:
$data = "-new-";
$data.= "<date>".date("d.m.Y")."</date>\n";
$data.= "<title>".$title."</title>";
$data.= "<url>www.bacabi.org/new/title.php?id=".$id."</url>";

$datei = fopen('datei.txt','a');

fputs($datei,$data);

fclose($datei);

So sollte es gehen. Da hängt er dann immer nen Bloch hinten dran!

Gruß,
sabelrider
 
funktioniert noch nicht ganz:
Parse error: parse error in /home/ww...blabla/write.php on line 7

das ist diese:

$datei = fopen("sacred.txt", "a");

aber laut php.net stimmt das so...
 
Hi,

Schau dir auch mal die Zeile(n) davor an/oder poste sie hier! Evtl. ist da der Fehler.
Weil in dieser Zeile sehe ich keinen!

Gruß,
sabelrider
 
Zuletzt bearbeitet:
habs grad selbst gefunden: ein ; hat gefehlt :/

trotzdem danke, funzt jetzt einwandfrei

hast dir ein ordentliches karma verdient ;)
 
Hi,

Bitte, bitte! Kein Problem. Ich helf doch gerne :D

Gruß,
sablrider
 
Hmm :) Bestimmt eine Lösung, aber nicht wirklich das, wonach gefragt war -fg- ^_^

Wie wäre es denn mit:
PHP:
<?php
function insertAtLine($file,$line,$content) {
    $nf = ''; $i=0;
    $fc = file($file);
    while ($i++<$line && sizeOf($fc)) $nf .= array_shift($fc)."\n";
    array_unshift($fc,'');
    $nf .= $content . implode("\n",$fc);
    fwrite($fc = fopen($file),$nf); fclose($fc);
}
?>

Das mit dem array_unshift() mag vielleicht auf den ersten Blick als etwas plump erscheinen, ist aber die einfachste Möglichkeit, nur dann einen Zeilenumbruch ranzuhängen, wenn auch wirklich noch Content kommt.
 
Zurück
Oben