preg_match_all не извлекает арабские слова в PHP

0

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

    $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,هالو,مرحبا
Теги:

2 ответа

3

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

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

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

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

ваш кодированный файл страницы (где вы пишете код) конвертируется в кодировку типа UTF-8. то он будет работать.

для конвертирования:

откройте файл в notepad++, а из скрытого файла меню "encoding"

  • 0
    если включено несколько файлов, то основной файл нужно конвертировать

Ещё вопросы

Сообщество Overcoder
Наверх
Меню