我目前正在使用PHP DOM解析HTML文档中的一些标签。我想获得"关键字"的内容属性值的值。元标记UNCHANGED。
例如,字符串" keyword1,keyword2 ,
keyword2,keyword3"返回" keyword1,keyword2,keyword2,keyword3",因此,打破输出XML文档中的实际关键字数量。
我已经尝试使用" htmlentities()",但它没有做任何事情。
答案 0 :(得分:0)
我知道这已经很晚了,但在我重新访问我的代码进行一些编辑之后,我通过正则表达式找到了解决方案。
function GetMetaTagsContentIntact($html, $meta_name)
{
$get_attribute_value = function($attrib, $tag)
{
//get attribute from html tag
$re = '/' . preg_quote($attrib) . '=([\'"])?((?(1).+?|[^\s>]+))(?(1)\1)/is';
if (preg_match($re, $tag, $match))
{
return urldecode($match[2]);
}
return false;
};
$output; // Get all meta tags.
preg_match_all("|<meta[^>]+name=\"([^\"]*)\"[^>]" . "+content=\"([^\"]*)\"?[^>]+>|i", $html, $output, PREG_PATTERN_ORDER);
$output = $output[0];
// Get specified mata tag's content value.
foreach($output as $tag)
{
if($meta_name == trim($get_attribute_value("name", $tag)))
{
return $get_attribute_value("content", $tag);
}
}
return false;
}
这将获取原始HTML(最好是已解析),并使用正则表达式获取元标记本身,然后从中提取所需元标记的内容值。
但是,为了成功地附加数据,就像我一样说XML文档,你需要使用&#34; textContent&#34;特别。更多相关内容:PHP: DOMNode - Manual