preg_match_all没有在PHP中提取阿拉伯语单词

时间:2014-11-15 21:53:49

标签: php regex

我制作此代码以检查文本并打印所有禁止的单词,禁止单词列表包含阿拉伯语单词和英语单词但不要提取和打印阿拉伯语单词只有英文单词,哪里有错误?

    $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 个答案:

答案 0 :(得分:3)

请使用u标识符重试。

看看用法:

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

答案 1 :(得分:0)

您的编码页面文件(编写代码的地方)转换为编码类型UTF-8 。然后它会起作用。

转换:

在记事本++中打开文件,并从"编码" 菜单隐藏文件中打开文件