-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 の代わりに preg_match_all を使用していました

4)。キーワード メタ タグが見つからない場合を処理しませんでした。

于 2012-09-25T21:19:14.590 に答える