2014-11-15 5 views
0

Я делаю этот код, чтобы проверить текст и распечатать все запрещенные слова, список запрещенных слов Содержит арабские слова и английские слова. Но не извлекайте и не печатайте арабские слова только английские слова, где ошибка ?preg_match_all не извлекает арабские слова в PHP

$banwords = "megaupload.com|alferdawsway.com|مرحبا|هالو"; 
    $bwords = explode("|", $banwords); 
    $text = "BLA BLA BLA مرحبا megaupload.com هالو alferdawsway.com BLA BLA BLA "; 
    $matches = array(); 
    $matchFound = preg_match_all("/\b(" . implode($bwords,"|") . ")\b/i", $text , $matches ); 
    if ($matchFound) 
    { 
    $words = array_unique($matches[0]); 
    $allwords = implode(',', $words) ; 
    print_r($allwords); 
    } 
//output : megaupload.com,alferdawsway.com 
//but it must be : megaupload.com,alferdawsway.com,هالو,مرحبا 

ответ

3

Повторите попытку с идентификатором u.

Посмотрите использование его:

preg_match_all("/\b(" . implode($bwords,"|") . ")\b/ui", $text, $matches);

+0

без изменений, это же –

+0

@omardealo, вы делаете что-то неправильно. Просто используйте «/ ui» вместо «/ i» в конце вашего регулярного выражения. Я проверил с PHP 5.4, и он работает (он находит четыре слова, два из них - арабский). – LSerni

+0

Мне нравится, что вы сказали, но не работаете со мной 'preg_match_all ("/\ b (". Implode ($ bwords," | ").") \ B/ui ", $ text, $ matches)' –

0

ваш закодированный файл подкачки (где вы пишете код) имеют преобразовать в тип кодировки UTF-8. то он будет работать.

для новообращенного:

открыть файл в блокноте ++, и от «кодирование» меню скрытого файла

+0

, если включен несколько файлов, тогда ** основной файл должен преобразовать ** –

Смежные вопросы