ingoS
Aktives Mitglied
Meine PHP-Kenntnisse sind leider ziemlich beschränkt, daher hänge ich bei folgender Aufgabe fest:
Ich habe eine Datei, in der ein wenig Text steht (events.php). Diese Datei möchte ich gerne nach einer in ein Formular eingegebenen Zeichenfolge durchsuchen und die komplette Zeichenfolge durch eine neue, ebenfalls im Formular eingegebene Zeichenfolge ersetzen.
Das Formular sieht folgendermaßen aus:
Ich versuche es nun mit folgendem PHP-Code (ersetzer.php):
Dieser sorgt bereits dafür, dass der Dateizeiger an die richtige Stelle springt und den Text ersetzt, nur ersetzt er ihn nicht durch das, was im Formular eingegeben wurde, sondern grundsätzlich durch "Resource id #3". Ich habe bereits folgendes gefunden: quakenet:#php FAQ Nun verstehe ich aber nicht, was genau ich (mit fgets?) anstellen muss, um nicht die Resource id, sondern die eigentliche Resource zu schreiben.
Weiterhin wüsste ich gerne, ob ich dafür sorgen kann, dass bei längerem neuen Text nicht noch der Rest nach der gesuchten alten Zeichenfolge ersetzt wird.
Ich habe eine Datei, in der ein wenig Text steht (events.php). Diese Datei möchte ich gerne nach einer in ein Formular eingegebenen Zeichenfolge durchsuchen und die komplette Zeichenfolge durch eine neue, ebenfalls im Formular eingegebene Zeichenfolge ersetzen.
Das Formular sieht folgendermaßen aus:
Code:
<form action="ersetzer.php" method="post">
<textarea name="original">
</textarea>
<textarea name="neu">
</textarea>
<input type="submit" value="Ändern">
</form>
Ich versuche es nun mit folgendem PHP-Code (ersetzer.php):
PHP:
<?php
$inhalt = $_POST["original"];
$original = $_POST["original"];
$neu = $_POST["neu"];
$datei1 = fopen("events.php","r+");
$dateiinhalt = file_get_contents("events.php");
$pos = strpos($dateiinhalt, $original);
$inhalt = ereg_replace($original, $neu, $datei1);
fseek($datei1, $pos);
fwrite($datei1,$inhalt);
fclose($datei1);
?>
Weiterhin wüsste ich gerne, ob ich dafür sorgen kann, dass bei längerem neuen Text nicht noch der Rest nach der gesuchten alten Zeichenfolge ersetzt wird.