Я делаю этот код, чтобы проверить текст и распечатать все запрещенные слова, список запрещенных слов Содержит арабские слова и английские слова. Но не извлекайте и не печатайте арабские слова только английские слова, где ошибка ?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,هالو,مرحبا
без изменений, это же –
@omardealo, вы делаете что-то неправильно. Просто используйте «/ ui» вместо «/ i» в конце вашего регулярного выражения. Я проверил с PHP 5.4, и он работает (он находит четыре слова, два из них - арабский). – LSerni
Мне нравится, что вы сказали, но не работаете со мной 'preg_match_all ("/\ b (". Implode ($ bwords," | ").") \ B/ui ", $ text, $ matches)' –