array ersetzen
Jan
- php
hallo,
*sorry, aber ne DAU-Frage ;-)
Wenn ich nen Datensatz einer .txt wie volgt in Parts zerlegt habe, wie kann ich dann zB parts[1] überschreiben?
$parts = explode("|", $data[$i]);
$name = urldecode($parts[0]);
$last = urldecode($parts[1]);
Danke!
Hallo,
versteh zwar die Frage nicht wirklich, aber:
$parts[1] = "neuer Inhalt";
mfg,
Philip
:-)
Ja, nur hätte ich das Ganze nun noch gerne zurück in die .txt geschrieben, das is mein Prob!
MfG
Jan
Hallo,
:-)
Ja, nur hätte ich das Ganze nun noch gerne zurück in die .txt geschrieben, das is mein Prob!
Achso. Jetzt versteh ich.
Da gibts die FUnktion implode(), die genau das Gegenteil von explode bewirkt http://de.php.net/function.implode. Damit setzt du das Array einfach wieder als String zusammen und schreibst es in die Textdatei.
mfg,
Philip
Hey, nochma ich :-/
Ich begann mein Posting mit dem Wort DAU *sfg*
Hab nich wirklich Ahnung von PHP, und bin begeistert wie weit man ohne kommt :-) -also bis auf mein Prob jetzt.
Wie ich das array zusammensetzte kam ich schon dahinter, aber wie speicer ich es ab? Ich will nicht, dass es hinter die anderen gesetzt wird, also letztlich doppelt ist, oder die gesamte Dtei überschreibt, also allein in der Datei steht, sonder ich will das alte ersetzen.
Wie sage ich php öffne ie Datei, gehe zu dem entsprechenden Satz und ersetze das array[1] durch das neu definierte?!?!?
Hoffe das war deutlich
Danke!
Hallo,
Ich begann mein Posting mit dem Wort DAU *sfg*
Wie sage ich php öffne ie Datei, gehe zu dem entsprechenden Satz und ersetze das array[1] durch das neu definierte?!?!?
woher bekommst du eigentlich $data[$i]?? Ich konnte das jetzt im Code unten nicht berücksichtigen...
[lese Datei in $data]
$parts = explode("|", $data);
$name = urldecode($parts[0]);
$last = urldecode($parts[1]);
$parts[1] = "neuer Inhalt";
$new_data = implode("|", $parts);
$file = fopen("file.txt", "w");
fwrite($file, $new_data);
fclose($file);
Hoffe ich konnte ein bisschen helfen. Wenn nicht musst du etwas genauer sagen, was du machen willst und woher $data[$i] kommt?
mfg,
Philip
OK, genau so weit war ich bisher auch, er überschreibt aber somit die ganze user.txt :-(
Deren Inhalt sieht wie folgt aus:
user1|info1
user2|info2
user3|info3
...
ausgelesen wird so:
$data = file("user.txt");
$entry_count = count($data);
if (empty($index)) $index = 0;
for ($i = $index; $i < $entry_count; $i++)
{
$parts = explode("|", $data[$i]);
$nr = $entry_count -$i;
$name = urldecode($parts[0]);
$last = urldecode($parts[1]);
...
}
dann z.B
if ($name == "user2"){
$parts[1] = "info2_neu";
$new_data = implode("|", $parts);
$file = fopen("user.txt", "w");
fwrite($file, $new_data);
fclose($file);
}
Nur so sieht meiner user.txt danach so aus:
user2|info2_neu
und nicht so:
user1|info1
user2|info2_neu
user3|info3
Hallo,
if (empty($index)) $index = 0;
for ($i = $index; $i < $entry_count; $i++)
Geht auch einfacher: for($i=0; $i<$entry_count; $i++)
{
$parts = explode("|", $data[$i]);
$nr = $entry_count -$i;
Wozu ist $nr ?
$name = urldecode($parts[0]);
$last = urldecode($parts[1]);
...
}
for($i=0; $i<$entry_count; $i++) {
$parts = explode("|", $data[$i]);
$name = urldecode($parts[0]);
$last = urldecode($parts[1]);
[...]
$parts[1] = "neu";
$new_data[$i] = implode("|", $parts);
}
$new_content = implode("\n", $new_data);
$file = fopen("user.txt", "w");
fwrite($file, $new_content);
fclose($file);
Nur so sieht meiner user.txt danach so aus: [...]
Ist ja klar. Liegt am $data[$i] mit dem ich nichts anfangen konnte.
So müssts klappen. Habs aber nicht getestet.
mfg,
Philip