在字符串拉丁字母中查找字符串

时间:2013-10-30 16:10:42

标签: php

我有这个:

$var = "User_èéàùìò";
if(0 < count(array_intersect(array_map("strtolower", str_split($var)), array("ì", "è", "é", "ò", "à"))))
回声“真实”; 其他   echo“false”;

返回“false”。我该怎么办?

1 个答案:

答案 0 :(得分:1)

你知道php字符串函数实际上可以处理二进制数据但不能处理文本。您的文本编码为UTF8。因此,您无法在其上使用str_split

$var = "User_èéàùìò"; // has 11 characters
str_split($var); // has 17 items

最好使用支持多字节字符的正则表达式。

$var = "User_èéàùìò";
var_dump(preg_match('/[ìèéòà]/iu', $var)); // i - case insensitive, u - utf character