Php 剥离标记的nodeValue属性的可靠性如何?它与剥离标记()相比如何?
输出:Php 剥离标记的nodeValue属性的可靠性如何?它与剥离标记()相比如何?,php,html,dom,Php,Html,Dom,输出: <?php function walkDOM($node) { if (! isset($node->childNodes)) return; for ($i = 0; $i < $node->childNodes->length; $i++) { $childNode = $node->childNodes->item($i); $childNodeName = $childN
<?php
function walkDOM($node)
{
if (! isset($node->childNodes))
return;
for ($i = 0; $i < $node->childNodes->length; $i++) {
$childNode = $node->childNodes->item($i);
$childNodeName = $childNode->nodeName;
echo $childNode->nodeName . " - " . $childNode->nodeType .
" - \"" . $childNode->nodeValue . "\"\n";
walkDOM($childNode);
}
}
function processHTML($s)
{
$doc = new DOMDocument('1.0', 'UTF-8');
$success = $doc->loadHTML($s);
if (! $success) {
echo "Load HTML failed.\n";
exit(1);
}
echo "Loaded HTML: " . $doc->saveHTML() . "\n";
walkDOM($doc);
}
$s = '<div>hello, <p>world<big>!</big></p></div>';
processHTML($s);
?>
$s = '<div>hello, <p>world<big>!</big></p></div>';
$doc = new DOMDocument('1.0', 'UTF-8');
$doc->loadHTML($s);
echo $doc->childNodes->item(1)->nodeValue . "\n";
但我也可以使用strip\u标签来实现:
hello, world!
$s='你好,世界 ",;
回音条标签($s)。“\n”;
我有两个问题:
将来我可以依靠nodeValue
属性的这种行为来剥离标签或做任何我能想象到的其他事情吗。有什么隐藏的惊喜吗
使用nodeValue
剥离标签与使用strip_tags()
剥离标签有何不同
如果你只想去掉标签,有什么复杂的?我认为使用strip_tags()函数更快更好。此外,还可以使用第二个参数来指定不应剥离的标记。您是否有任何来源支持您的声明,即使用剥离标记()更快更好。
?另外,您知道我的第一个问题的答案吗,即我所解释的nodeValue
的行为是否可以依赖?
hello, world!
$s = '<div>hello, <p>world<big>!</big></p></div>';
echo strip_tags($s) . "\n";