Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用domdocument编辑html文本_Php_Domdocument - Fatal编程技术网

Php 使用domdocument编辑html文本

Php 使用domdocument编辑html文本,php,domdocument,Php,Domdocument,给定一个部分HTML片段,如 <div id="article"> <p>Some text</p> <p>More text</p> <pre><code> echo $variable; </code></pre> </div> 我想循环遍历文本节点并对它们应用一个函数,这与函数的功能无关,但与前置代码块中的文本无关 鉴

给定一个部分HTML片段,如

<div id="article">
    <p>Some text</p>
    <p>More text</p>
    <pre><code>
         echo $variable;
    </code></pre>
</div>
我想循环遍历文本节点并对它们应用一个函数,这与函数的功能无关,但与前置代码块中的文本无关


鉴于它是一个部分代码块,我想我需要使用
DOMDocument->createDocumentFragment()
。但是,如何在不创建额外的
标记的情况下循环文本节点,然后保存输出,就像默认情况下
saveHTML()
所做的那样?

为什么要使用DomDocument

为什么不从“远程源”读取HTML,然后使用file\u put\u contents()将其保存为服务器上的文件


您可以使用文档片段。在文本节点上循环是很容易的,找到它们有点麻烦。为此,下面的示例使用XPath查询查找所有不是

<div id="article">    
<p>txet emoS</p>    
<p>txet eroM</p>    
<pre><code>
         echo $variable;
    </code></pre>
</div>
HTML ); $text_nodes=$xpath->query('sundant::text()[not(祖先::pre)]”,$frag); foreach($text\u节点作为$text\u节点){ $text\u node->data=strev($text\u node->data); } //打印div echo$doc->saveHTML($frag->firstChild);
这将打印出如下内容:

有用链接:

  • DOMText
    extends`DOMCharacterData)
使用jquery append()。。通过事件追加
<div id="article">    
<p>txet emoS</p>    
<p>txet eroM</p>    
<pre><code>
         echo $variable;
    </code></pre>
</div>