1

私は正規表現に不慣れで、preg_matchを使用して文字列を見つけようとしています。コードは次のとおりです。

$artist = $row['ARTIST'];
$bool = preg_match("/$artist/", $description, $match);

私のエラーは:

Unknown modifier 'C' in ...

誰かが私が間違っていることを教えてくれるなら、私はそれを感謝します、ありがとう。

4

1 に答える 1

3

変数内の可能な特殊文字をエスケープする必要があります。

$bool = preg_match('/' . preg_quote($artist, '/') . '/', $description, $match);

PHPマニュアルのpreg_quote()

preg_quote()はstrを受け取り、正規表現構文の一部であるすべての文字の前に円記号を置きます。これは、一部のテキストで一致させる必要のあるランタイム文字列があり、その文字列に特殊な正規表現文字が含まれている可能性がある場合に役立ちます。

ヒント:変数をエコーし​​てみてください。$artist問題の原因となっている文字を確認する必要があります。

于 2012-05-05T14:26:45.547 に答える