Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.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/6/google-chrome/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
PHP文档回显问题 $content='1!' '; $dom=新的DOMDocument; $dom->preserveWhiteSpace=false; $dom->loadHTML($content); foreach($dom->getElementsByTagName('a')作为$node) { $node->setAttribute('href','http://mysite.ru/'.$node->getAttribute('href'); } $dom->formatOutput=true; echo$dom->saveXml($dom->documentElement);_Php_Domdocument - Fatal编程技术网

PHP文档回显问题 $content='1!' '; $dom=新的DOMDocument; $dom->preserveWhiteSpace=false; $dom->loadHTML($content); foreach($dom->getElementsByTagName('a')作为$node) { $node->setAttribute('href','http://mysite.ru/'.$node->getAttribute('href'); } $dom->formatOutput=true; echo$dom->saveXml($dom->documentElement);

PHP文档回显问题 $content='1!' '; $dom=新的DOMDocument; $dom->preserveWhiteSpace=false; $dom->loadHTML($content); foreach($dom->getElementsByTagName('a')作为$node) { $node->setAttribute('href','http://mysite.ru/'.$node->getAttribute('href'); } $dom->formatOutput=true; echo$dom->saveXml($dom->documentElement);,php,domdocument,Php,Domdocument,输出: $content = '<!--<sup><span style="font-weight:bold;color:black;">0</span></sup><br/>--> <div class="popular-video-image"> <a href="video/Far+East+Movement - Like+a+G6/w4s6H4ku6ZY/" title="&

输出:

$content = '<!--<sup><span style="font-weight:bold;color:black;">0</span></sup><br/>-->
    <div class="popular-video-image">
        <a href="video/Far+East+Movement - Like+a+G6/w4s6H4ku6ZY/" title="<lang video_go_to=Far East Movement - Like a G6>">
            <img src="/images/topvideo/1.jpg" alt=""/>
        </a>
        <span class="popular-video-artist ellipsis"><a href="video/Far+East+Movement - Like+a+G6/w4s6H4ku6ZY/" title="<lang video_go_to=Far East Movement - Like a G6>" class="ellipsis">Far East Movement</a></span>
        <span class="popular-video-title ellipsis"><a href="video/Far+East+Movement - Like+a+G6/w4s6H4ku6ZY/" title="<lang video_go_to=Far East Movement - Like a G6>" class="ellipsis">Like a G6</a></span>
    </div>';

    $dom = new DOMDocument;
    $dom->preserveWhiteSpace = false;
    $dom->loadHTML($content);
    foreach ($dom->getElementsByTagName('a') as $node)
    {
        $node->setAttribute('href', 'http://mysite.ru/' . $node->getAttribute('href'));
    }
    $dom->formatOutput = true;

    echo $dom->saveXml($dom->documentElement);





我不想添加html和body标记。也不希望将标记替换为
lang
<代码>和 也是不必要的

我想收到这样的内容,这是在入口处,只有修改后的链接

对不起,英语不好

我猜
标记之所以被放入,是因为您使用的是
loadHTML
。尝试改用
loadXML


至于
lang
,它必须被替换,否则生成的XML将无效。如果它给您带来了问题,您应该稍微改变一下方法并使用它,而不是反对它。

saveXml采用一个可选参数,允许您指定要输出的节点

<html>
  <body>
    <div class="popular-video-image">&#13;
        <a href="http://mysite.ru/video/Far+East+Movement - Like+a+G6/w4s6H4ku6ZY/" title="&lt;lang video_go_to=Far East Movement - Like a G6&gt;">&#13;
            <img src="/images/topvideo/1.jpg" alt=""/></a>&#13;
        <span class="popular-video-artist ellipsis"><a href="http://mysite.ru/video/Far+East+Movement - Like+a+G6/w4s6H4ku6ZY/" title="&lt;lang video_go_to=Far East Movement - Like a G6&gt;" class="ellipsis">Far East Movement</a></span>&#13;
        <span class="popular-video-title ellipsis"><a href="http://mysite.ru/video/Far+East+Movement - Like+a+G6/w4s6H4ku6ZY/" title="&lt;lang video_go_to=Far East Movement - Like a G6&gt;" class="ellipsis">Like a G6</a></span>&#13;
    </div>

  </body>
</html>
这将从输出中删除html和body标记。

您将看到
&13位于每行末尾,因为您的HTML具有
CR+LF
。要消除它们,请在将其馈送到
DOMDocument
之前在其上运行此命令,以将它们转换为Unix样式的行尾
LF

$dom->saveXml($dom->documentElement->firstChild->firstChild);
<?php
    $content = '<!--<sup><span style="font-weight:bold;color:black;">0</span></sup><br/>-->
    <div class="popular-video-image">
        <a href="video/Far+East+Movement - Like+a+G6/w4s6H4ku6ZY/" title="<lang video_go_to=Far East Movement - Like a G6>">
            <img src="/images/topvideo/1.jpg" alt=""/>
        </a>
        <span class="popular-video-artist ellipsis"><a href="video/Far+East+Movement - Like+a+G6/w4s6H4ku6ZY/" title="<lang video_go_to=Far East Movement - Like a G6>" class="ellipsis">Far East Movement</a></span>
        <span class="popular-video-title ellipsis"><a href="video/Far+East+Movement - Like+a+G6/w4s6H4ku6ZY/" title="<lang video_go_to=Far East Movement - Like a G6>" class="ellipsis">Like a G6</a></span>
    </div>';

    $dom = new DOMDocument;
    $dom->preserveWhiteSpace = false;
    $dom->loadHTML($content);
    foreach ($dom->getElementsByTagName('a') as $node)
    {
        $node->setAttribute('href', 'http://mysite.ru/' . $node->getAttribute('href'));
    }
    $dom->formatOutput = true;

    echo preg_replace('#^<!DOCTYPE.+?>#', '', str_replace( array('<html>', '</html>', '<body>', '</body>', "\n\n", '&lt;', '&gt;'), array('', '', '', '', '', '<', '>',), $dom->saveHTML()));

我需要通过使用DomDocument找到一条出路
$content = preg_replace('/\r\n/', "\n", $content);