我是stackoverflow的新手,希望在这里找到我的解决方案:)
使用PHP,我想要一个像以下的PHP函数:
function getHtmlTags($html_source, $tag='div', $by_attr="class", $attr_value="class_name"){
}
例如:如果找到1,则应返回如下数组:
array([0] => '<div class="class_name">blah blah</div>');
我到处搜索:(找不到解决办法!请帮忙
答案 0 :(得分:1)
将您的HTML文档加载到Document Object Model并使用XPath根据给定的参数查找元素。
关于你的正则表达式标签 - 在下降到那个噩梦之前阅读这个 - RegEx match open tags except XHTML self-contained tags
例如(警告 - 完全未经测试)
/**
* @return DOMNodeList
*/
function getHtmlTags($html_source, $tag='div', $by_attr="class", $attr_value="class_name")
{
$document = new DOMDocument();
if (!$document->loadHTML($html_source)) {
throw new Exception('Invalid HTML source');
}
$xpath = new DOMXPath($doc);
$query = sprintf('//%s[%s="%s"]', $tag, $by_attr, $attr_value);
return $xpath->query($query);
}