2012-03-05 22 views
0

mysql dbテーブルから取得したヘブライ語の禁止語を$_POST['content']のヘブライ語の文字列と一致させようとしています(ヘブライ語の文字列$_POST['content'])ヘブライ語の言葉は運がない。特定の文字列で禁止されているヘブライ語を検索するために、以下のコードを変更する手助けができますか?すべてのデータソースがUTF-8形式でチェックされています。preg_match_allは完全に英語の単語に一致しますが、ヘブライ語では運がありません

<? 

$banned_words=array(); 
while($loc=mysql_fetch_array($loc_query)) 
{ 
    $banned_words[$k]=stripslashes(utf8_decode($loc["sb_word"])); 
    $k=$k+1; 
} 

$matches = array(); 
$matchFound = preg_match_all(
    "/\b(" . implode($banned_words,"|") . ")\b/u", 
    $_POST['content'], 
    $matches 
    ); 

if ($matchFound) 
{ 
    $words = array_unique($matches[0]); 
    $word_status=1; 
    } 
?> 
+1

['implode'](http://php.net/implode)は逆の動作をします。あなたはグルー文字を最初に与え、次に配列変数を与える必要があります。 – mario

+2

@mario implode()は、歴史的な理由から、いずれかの順序でパラメータを受け入れることができます。しかし、explode()との一貫性のために、文書化された引数の順序を使用することはあまり混乱しないかもしれません。 –

答えて

1

\bあなたがUnicode character propertiesを使用する必要があり、Unicode対応ではありません。いくつかのヘルプについては、this answerを参照してください。

関連する問題