Hallo zusammen
Ich möchte ganz gerne mit PHP in einem HTML file den abschnitt zwischen <div.. > und </div> mit einem neuen ersetzen wenn er schon vorhanden ist - falls er noch micht vorhanden ist soll er angefügt werden.
Das habe ich bisher
Damit klappt das eintragen schon mal sehr gut aber leider nicht das ersetzen - wenn der Eintrag schon vorhanden ist bekomme ich die Fehlermeldung
Das sagt mir zwar der die Abfrage funktioniert aber leider das Ersetzen nicht.
Beim anhängen wird es ganz ans ende gesetzt - sollte aber vor </body> kommen
Kann mir bitte jemand sagen was ich für einen Fehler gemacht habe
THX Nappi
Ich möchte ganz gerne mit PHP in einem HTML file den abschnitt zwischen <div.. > und </div> mit einem neuen ersetzen wenn er schon vorhanden ist - falls er noch micht vorhanden ist soll er angefügt werden.
Das habe ich bisher
PHP:
<?php
$name = $_POST['name'];
$$text = $_POST['text'];
$image = $_POST['image'];
$file = $DOCUMENT_ROOT. 'member.html';
$htmleintrag = '
<div id="'.$name.'">
<h3>'.$name.'</h3>
<p><div>
<img style="float: left; padding: 5px; margin: 5px 5px 5px 5px; border: 2px solid black" src="'.$image.'" alt="'.$name.'" width="400px" />
</div>
<p>'.$text.'</p>
</div>';
$doc = new DOMDocument();
$doc->loadHTMLFile($file);
$xpath = new DOMXpath($doc);
$elements = $xpath->query("/html/body/div[@id='".$name."']");
if (!is_null($elements)) {
foreach ($elements as $element) {
if (is_writable($file)) {
if (!$handle = fopen($file, 'a')) {
print 'Kann die Datei '.$file.' nicht öffnen';
exit;
}
if (!fwrite($handle, $htmleintrag)) {
print 'Kann in die Datei '.$file.' nicht schreiben';
exit;
}
print 'Fertig, der Member '.$name.' wurde angelegt';
fclose($handle);
} else {
print 'Die Datei '.$file.' ist nicht schreibbar';
}
$nodes = $element->childNodes;
foreach ($nodes as $node) {
$htmleintrag = preg_replace ('<div id="'$name'">', '</div>' , $htmleintrag);
}
}
}
?>
Damit klappt das eintragen schon mal sehr gut aber leider nicht das ersetzen - wenn der Eintrag schon vorhanden ist bekomme ich die Fehlermeldung
Warning: DOMDocument::loadHTMLFile() [domdocument.loadhtmlfile]: ID already defined in member.html, line: 24 in E:\xampp\htdocs\test\html.php on line 20
Fertig, der Member wurde angelegt
Das sagt mir zwar der die Abfrage funktioniert aber leider das Ersetzen nicht.
Beim anhängen wird es ganz ans ende gesetzt - sollte aber vor </body> kommen
Kann mir bitte jemand sagen was ich für einen Fehler gemacht habe
THX Nappi
Zuletzt bearbeitet: