PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : text hinzufügen/bearbeiten in einer bestimmten datei


SGG
20.01.2004, 16:15:05
Ich habe eine php seite erstellt wo ich etwas schreiben kann


<?php
if ($_POST['speichern'])
{
$fp = fopen("data.txt", "w");
fputs($fp, $_POST['edit'], strlen($_POST['edit']));
fclose($fp);
}

$fp = fopen("data.txt","r");
$file = fread($fp,filesize("data.txt"));
fclose($fp);

echo "<form action="".$_SERVER['PHP_SELF']."" method="post">

<textarea name="edit" cols="75" rows="30">$file</textarea>

<input type="Submit" name="speichern" value="Speichern"></form>";


?>


wenn ich nun was darin speichere z.b. 123. ist das ja in einer txt datei. So jetzt will ich aber tet hinzufügen, aber es geht nicht! es wir immer wieder überschrieben. Was kann ich machen?
Und wie kann ich den text bearbeiten?

c4
20.01.2004, 17:02:35
a statt w
--> http://php.net/fopen

SGG
20.01.2004, 17:11:55
und könnt ihr mir sagen wie ich einen text an eine bestimmte stelle einer anderen php datei bekomme

und

ich will noch text bearbeiten also nicht nur hinden dran fügen, wäre net wenn ihr mir helfen könnt

danke ^^

c4
20.01.2004, 17:25:13
und könnt ihr mir sagen wie ich einen text an eine bestimmte stelle einer anderen php datei bekomme Man kann nicht sagen: Füge mir in Zeile 17 den Wert 'Auto' hinzu.

ich will noch text bearbeiten also nicht nur hinden dran fügen, wäre net wenn ihr mir helfen könnt Kommt ein wenig darauf an, was Du machen willst. Vermutlich kommst Du am besten, wenn Du die Datei einliest, in ein Array packst und dieses dann Feld für Feld durchgehst.

Den Dateiinhalt in ein Array packen kannst Du einfach mit file() --> http://php.net/file

Damit gehst Du es durch:$fc=file('ding.txt');
for ($i=0; $i<count($fc); $i++) {
if ($fc[$i]==$gesucht) {
$fc[$i]=$gesuchtes_damit_ersetzen;
}
}

// aus dem array ein string machen
$fc=join('', $fc);

$fh=fopen('ding.txt', 'w');
fwrite($fh, $fc);
fclose($fh); Naja, so sieht das Prinzip ungefähr aus.

Mir ist inzwischen eingefallen, wie man doch indirekt sagen kann, dass in Zeile 17 was eingefügt werden soll:$fc=file('ding.txt');
$fc[16].="neuer Inhalt mit Zeilenumbruch dahintern";

SGG
20.01.2004, 18:02:01
sorry wenn ich das sage aber das versteh ich nicht kannste mir das mal bitte erklären?

c4
20.01.2004, 18:23:57
hm. Ich dachte eigentlich, dass das eine Erklärung ist...

Gib mal ein Beispiel, was Du genau vor hast. Wie die Datei aussieht, wie sie aussehen soll, usw.
Falls möglich: Was genau verstehst Du daran nicht? Eine Erklärung zu einer Erklärung abzuliefern macht sich nicht wirklich leicht. ;)

SGG
20.01.2004, 18:28:43
also ich will ein text in einer bestimmten datei
also Text
abcd
in z.b
1234
verändern.

Ich versteh das mit den array nicht

^^

c4
20.01.2004, 18:33:25
Hab da 2 Quellen für Dich, die Du mal durchlesen solltest: http://tut.php-q.net/array.html und für später http://dclp-faq.de/ch/ch-arrays.html

Mit dem Grundlagenwissen solltest Du dann wissen, was ich Dir hier sagen wollte. Wenn nicht, dann probiere ich es halt noch einmal. :)

meikel (†)
20.01.2004, 19:37:50
Original geschrieben von SGG
und könnt ihr mir sagen wie ich einen text an eine bestimmte stelle einer anderen php datei bekomme
und
ich will noch text bearbeiten also nicht nur hinden dran fügen, wäre net wenn ihr mir helfen könnt
FAQ lesen: http://www.dclp-faq.de/q/q-datei-einfuegen.html

PHP Scripte via Script zu verändern ist etwas schwierig, weil Du verhindern mußt, daß PHP das Script parst und $var durch den Wert ersetzt.