2017-12-30 23 views
2

Ich arbeite an Code, der Zeichenfolgen in "index.html" -Datei ersetzt und es gibt eine wiederholte Zeichenfolge in HTML-Tags l. Ich bin mit PHP-String mit einem anderen ist einErsetzen Sie bestimmten Inhalt aus wiederholten Inhalt innerhalb HTML-Tag mit einer ID mit PHP

Das Problem zu ersetzen die Zeichenfolge in vielen Tags können wiederholt werden, so wie PHP-Code ändern Zeichenfolge innerhalb von Tags mit bestimmten ID zu machen, weil diese PHP-Code ersetzen alle Strings innerhalb Datei

$(document).ready(function() { 
 
    $("p").click(function() { 
 
     var mid= this.id; 
 
     var yyy = document.getElementById(mid).innerHTML; 
 
     document.getElementById("oldvalue").value = yyy; 
 
     document.getElementById("iddddd").value=mid; 
 
     document.getElementById("newvalue").value ="text2" 
 
    }); 
 
});
<p id="parg1" >text1 </p> 
 
<p id="parg2">text1 </p> 
 
<form action="changeText.php" method="POST" > 
 
    <input type="hidden" id="oldvalue" name="oldvalue" class="inputText"> 
 
    <input type="hidden" id="newvalue" name="newvalue" class="inputText" > 
 
    <input type="hidden" id="iddddd" name="id" class="inputText"> 
 

 
    <input type="submit" id="submitbutton" value="Save" > 
 
</form>

// pHP-Code

$content=file_get_contents("index.html"); 
$content_chunks=explode($_POST['oldvalue'], $content); 
$content=implode($_POST['newvalue'], $content_chunks); 
file_put_contents("index.html", $content); 
//result from that is 
//<p id="parg1" >text2 </p> 
//<p id="parg2">text2 </p> 

Antwort

1

Sie müssen DOMDocument dafür verwenden können Sie mehr darüber in der PHP-Dokumentation lesen.

hier ist ein einfaches Beispiel:

<?php 
function replaceByID(String $html,String $id,String $search,String $replace) : String 
{ 
$dom = new \DOMDocument(); 
$dom->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8')); 

$element = $dom->getElementByID($id); 
$element->nodeValue = str_replace($search,$replace,$element->nodeValue); 

$html = $dom->saveHTML(); 
return $html; 
} 



$file = 'index.html'; 
$html = file_get_contents($file); 
$oldText = htmlspecialchars($_POST['oldValue']); 
$newText = htmlspecialchars($_POST['newValue']); 
$html = replaceByID($html,'parg1',$oldText,$newText); 

EDIT:

ich diese Funktion nur getestet und es funktioniert perfekt, ich denke, es kann die Arbeit für Sie erledigen.

Wenn Sie an einem Projekt arbeiten, in dem Sie HTML-Dateien bearbeiten oder bearbeiten müssen, empfehle ich Ihnen dringend, mehr über DOM und PHP DOM zu erfahren.

+0

Vielen Dank für Sie @azjezz werde ich über sie bald Dank wieder lernen Es hat funktioniert 100% „file_put_contents ($ file, $ html); “ nur hinzugefügt am Ende –

Verwandte Themen