-1

这似乎是一件很简单的事情。无论如何,在我的代码底部是一个使用函数结果的数组。现在它似乎不起作用,我认为这可能是我扫描元关键字的正则表达式。所以基本上,我想知道我的函数做错了什么或者如何创建一个完整的正则表达式代码

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];
}
}
4

1 回答 1

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)。您没有处理找不到关键字元标记的情况。

于 2012-09-25T21:19:14.590 回答