PHP可以通过正则表达式或者使用mb_strlen()函数判断一个字符串是中文还是英文。
使用正则表达式:
$str = "Hello world!";
$pattern = "/[\x{4e00}-\x{9fa5}]/u"; //匹配中文的正则表达式
if(preg_match($pattern, $str)){
echo "字符串$str是中文";
}else{
echo "字符串$str是英文";
}
使用mb_strlen()函数:
mb_strlen()函数是一个多字节字符串函数,可以返回一个字符串中的字符数。
$str = "Hello world!";
if(mb_strlen($str, 'utf8') == strlen($str)){
echo "字符串$str是英文";
}else{
echo "字符串$str是中文";
}
完整示例:
<?php
header("Content-type:text/html; charset=utf-8");
$str1 = "Hello world!"; //英文字符串
$str2 = "你好,世界!"; //中文字符串
//使用正则表达式判断
$pattern = "/[\x{4e00}-\x{9fa5}]/u"; //匹配中文的正则表达式
if(preg_match($pattern, $str1)){
echo "字符串$str1是中文";
}else{
echo "字符串$str1是英文";
}
if(preg_match($pattern, $str2)){
echo "字符串$str2是中文";
}else{
echo "字符串$str2是英文";
}
//使用mb_strlen()函数判断
if(mb_strlen($str1, 'utf8') == strlen($str1)){
echo "字符串$str1是英文";
}else{
echo "字符串$str1是中文";
}
if(mb_strlen($str2, 'utf8') == strlen($str2)){
echo "字符串$str2是英文";
}else{
echo "字符串$str2是中文";
}
?>
正文完