Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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 获取html标记内部/之间的所有内容_Php_Regex_Xpath - Fatal编程技术网

Php 获取html标记内部/之间的所有内容

Php 获取html标记内部/之间的所有内容,php,regex,xpath,Php,Regex,Xpath,获取一些html元素+值的最佳方法是什么?例如: <div id="abc" class="classs"> <img src="pic1.png" alt="pico"> <img src="pic2.png" alt="nano"> </div> 它应该在数组、对象或其他东西中。 你喜欢什么?xpath?正则表达式?xmlobject?您可能想要使用您可能想要使用使用此函数: public function innerHTML

获取一些html元素+值的最佳方法是什么?例如:

<div id="abc" class="classs">
    <img src="pic1.png" alt="pico">
    <img src="pic2.png" alt="nano">
</div>
它应该在数组、对象或其他东西中。 你喜欢什么?xpath?正则表达式?xmlobject?

您可能想要使用

您可能想要使用

使用此函数:

public function innerHTML($DOMnode) {
    return preg_replace(
        '/^<(\w+)\b.*?>(.*)<\/\1?>/s',
        '$2',
        $DOMnode->ownerDocument->saveXML($DOMnode)
    );
}
公共函数innerHTML($DOMnode){
返回预更换(
“/^(.*)/s”,
'$2',
$DOMnode->ownerDocument->saveXML($DOMnode)
);
}
使用此功能:

public function innerHTML($DOMnode) {
    return preg_replace(
        '/^<(\w+)\b.*?>(.*)<\/\1?>/s',
        '$2',
        $DOMnode->ownerDocument->saveXML($DOMnode)
    );
}
公共函数innerHTML($DOMnode){
返回预更换(
“/^(.*)/s”,
'$2',
$DOMnode->ownerDocument->saveXML($DOMnode)
);
}

是否有可能使用XHTML?这将使使用基于XML的解决方案更容易。您想在服务器端还是客户端执行此操作?服务器端是的,我可以使用XHTML。有可能使用XHTML吗?这将使使用基于XML的解决方案更容易。您想在服务器端还是客户端执行此操作?服务器端,是的,我可以使用xhtmlIA Cthulhu Fhtagn!!!如果您更好地研究代码,您会注意到您没有解析整个HTML页面,而只是解析DOM节点的内容!我确实研究过它,发现为了能够在其上运行正则表达式而将DomNode转换为字符串是很可怕的。我看不出为什么使用字符串会比在节点上迭代、使用appendXML和文档碎片效率低,因为这就像在手术中从手术刀切换到勺子一样。如果您已经在使用正确的工具集(DOM),为什么要在中途放弃它,因为它对节点和属性没有任何线索?IA IA Cthulhu Fhtagn!!!如果您更好地研究代码,您会注意到您没有解析整个HTML页面,而只是解析DOM节点的内容!我确实研究过它,发现为了能够在其上运行正则表达式而将DomNode转换为字符串是很可怕的。我看不出为什么使用字符串会比在节点上迭代、使用appendXML和文档碎片效率低,因为这就像在手术中从手术刀切换到勺子一样。如果您已经在使用正确的工具集(DOM),为什么要在中途放弃它呢?因为您对节点和属性一无所知?