答案 0 :(得分:4)
尝试使用u
修饰符启用UTF8支持:
你(PCRE8)
此修饰符打开与Perl不兼容的PCRE的其他功能。模式字符串被视为UTF-8。此修饰符可从Unix上的PHP 4.1.0或更高版本以及win32上的PHP 4.2.3获得。自PHP 4.3.5起,检查模式的UTF-8有效性。
http://ch.php.net/manual/en/reference.pcre.pattern.modifiers.php
答案 1 :(得分:1)
我怀疑你的问题与多字节字符和编码有关。
来自:multi-byte function to replace preg_match_all?
您是否看过mb_ereg?
此外,您可以将UTF-8编码的字符串传递给preg_match 使用u修饰符,这可能是那种多字节支持你 需要。另一种选择是编码为UTF-8然后编码 结果回来了。
在这种情况下,u修饰符将像这样添加
if (preg_match("/\b".preg_quote($kw_to_search_for)."\b/iu", $search_strings[$i])) {
// found
}