我正在编写一个程序来从网站中提取元信息。
我需要编写一些正则表达式来拉取内容标记之间的文本。
$find = "<meta\s+name=['\"]??keywords['\"]??\s+content=['\"]??(.+)['\"]??\s*\/?>";
这适用于像这样编写的元关键字:
<meta name="keywords" content="keyword, keyword, keyword" /> or like so
<meta name="keywords" content="keyword, keyword, keyword">
BuT我想将其翻转,以便能够以这种格式在内容标签之间找到文本:
<meta content="keyword, keyword, keyword" name="keywords" /> or like so
<meta content="keyword, keyword, keyword" name="keywords" >
有人帮忙吗?干杯
答案 0 :(得分:2)
为此,您还可以使用get_meta_tags()
- 内置PHP函数,从网站(或已下载的文件)中提取<meta>
标记属性:
$tags = get_meta_tags('http://www.example.com/');
print_r($tags);
答案 1 :(得分:1)
试试这个:
<meta[^>]*content="(?<keyword>[^"]*)"[^>]*/?>
结果:
答案 2 :(得分:1)
您也可以使用PHP DOm
$doc=new DOMDocument();
$doc->loadHTML($htmlcontent);
$xpath= new DOMXPath($doc);
$nodelist=$xpath->query('//meta[@name='keywords']/@content');
foreach($nodelist as $node)
echo $node->nodeValue;
使用regexp大部分时间都可以工作,但它无法安全地处理任何HTML内容。