使用PHP

时间:2017-12-30 18:17:01

标签: javascript php jquery html

我正在处理代替" index.html"中的字符串的代码。文件,HTML标签内有一个重复的字符串l。 我使用PHP将字符串替换为另一个字符串

问题是 那个字符串可能会在很多标签中重复出来,所以如何让PHP代码更改带有特定id的标签内的字符串,因为这个PHP代码替换了里面的所有字符串文件



$(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>
&#13;
&#13;
&#13;

// 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>

1 个答案:

答案 0 :(得分:1)

你需要使用DOMDocument,你可以在php文档中阅读更多相关信息。

这是一个简单的例子:

<?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);

编辑:

我刚刚测试了这个功能,它完美运行,我想它可以为你完成工作。

如果您正在处理需要操作或编辑HTML文件的项目,我强烈建议您了解DOMPHP DOM