这似乎是一件简单的事情。无论如何,在我的代码的底部是一个使用函数结果的数组。现在它似乎没有工作,我认为它可能是我扫描Meta关键字的正则表达式。所以基本上,我想知道我的功能是错误的,或者如何创建一个完全正常的正则表达式代码
function getKeywords($link) {
$str2 = file_get_contents($link);
if (strlen($str2)>0) {
preg_match_all( '(?i)<meta\\s+name=\"keywords\"\\s+content=\"(.*?)\">', $str2, $keywords);
return $keywords[1];
}
}
答案 0 :(得分:2)
试试这个:
function getKeywords($link) {
$str2 = file_get_contents($link);
if (strlen($str2)>0) {
if(preg_match( '/<meta\s+name="keywords"\s+content="(.*?)">/i', $str2, $keywords))
return $keywords[1];
else
return "";
}
}
你的表达有多个问题:
1)。对于\ s和\“
的许多转义字符2)。你没有带/和以/
结尾3)。您使用的是preg_match_all而不是preg_match
4)。当没有找到关键字元标记时,您没有处理此案例。