php怎么判断字符串是中文还是英文?

30次阅读
没有评论

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是中文";
}
?>
正文完
 
评论(没有评论)