我必须检查页面的源代码中是否有机器人noindex元标记,我想尽可能多地捕获不同的html语法变体。
首先我尝试了get_meta_tags()函数,但它有一些限制,所以我决定坚持使用preg_match。
我试过这个正则表达式:
"/<meta\s+name\s*=\s*[\"'](.*?)[\"']\s*content\s*=\s*[\"'].*?noindex.*?[\"']\s*\/?>/i"
但是当noindex元标记像这样(内容部分优先)时它会失败:
<meta content="follow, index" name="robots" />
任何人都可以分享更合适的正则表达式来实现我的目标吗?
答案 0 :(得分:0)
没有长/大preg的方法:
if (preg_match_all('/\<meta.*?\>/mis',$s,$m) and strstr(join(',',$m[0]),'noindex')){
echo 'page contains noindex meta tag';
}else{
echo 'without noindex meta tag';
}