2012-03-05 16 views
3

、私はPHPのエラー取得しています:PHPエラー入力が含まれている場合、入力文字列が "/" の記号が含まれている場合は、 "/"

警告:するpreg_match()[function.pregマッチ]:不明な修飾

どうすれば解決できますか?

$token = '/<'.$tag.'[^>]*>(.*\b'.$keyword.'\b.*)<\/'.$tag.'>/siU'; 
if(preg_match($token, &$content, $matches)) 
{ 
    $match = 1; 
} 
return $match; 
+0

「\ /」と置き換えようとしましたか? – Arfeen

+0

いいえ、私はそれを試みるかもしれません。先端に感謝します。 – RegEdit

答えて

5

addcslashes試してみてください。

$token = '/<' . preg_quote($tag, '/') . '[^>]*>(.*\b' . preg_quote($keyword, '/') 
     . '\b.*)<\/' . preg_quote($tag, '/') . '>/siU'; 
1

入力を正規表現パターンで使用します。すべての特殊シーケンスをエスケープする必要があります。あなたはこのように、タグやキーワードをエスケープするpreg_quote()を使用する必要がある機能

+0

より良い[preg_quote](http://www.php.net/manual/en/function.preg-quote.php) – Piro

+0

'php> echo addslashes( '。*');は'。* 'を返します。だからこれは最善の考えではありません:) – Vyktor

2

preg_quote関数は、こののお手伝いをする必要があります。

関連する問題