php判断是否是英文
‘壹’ php检查字符串中是否有汉字/数字/英文字母
只能用正则
<?
$str = "测试中文";
echo $str;
echo "<hr>";
//if (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str)) { //只能在GB2312情况下使用
//if (preg_match("/^[\x7f-\xff]+$/", $str)) { //兼容gb2312,utf-8 //判断字符串是否全是中文
if (preg_match("/[\x7f-\xff]/", $str)) { //判断字符串中是否有中文
echo "有中文";
} else {
echo "没中文";
}
if (preg_match("/\d/", $str)) { //判断字符串中是否有数字
echo "有数字";
} else {
echo "没数字";
}
if (preg_match("/\w/", $str)) { //判断字符串中是否有英文
echo "有英文";
} else {
echo "没英文";
}
?>
‘贰’ php中如何判断中英文字符
PHP判断中英文的依据是字符的ASII值,而字符的ASII值也因编码不同而不同。为了能编写判断中英文字符的php程序,我们必须先来了解下各编码下中文英文字符的ASII值范围:
1.
GBK
(GB2312/GB18030)
x00-xff
GBK双字节编码范围
x20-x7f
ASCII
xa1-xff
中文
gb2312
x80-xff
中文
gbk
2.
UTF-8
(Unicode)
u4e00-u9fa5
(中文)
x3130-x318F
(韩文
xAC00-xD7A3
(韩文)
u0800-u4e00
(日文)
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD
HTML
4.0
Transitional//EN">
<HTML>
<HEAD>
<TITLE>
New
Document
</TITLE>
<META
http-equiv="Content-Type"
content="text/html;
charset=utf-8">
</HEAD>
<BODY>
<?
$str
=
"中文";
echo
$str;
echo
"<hr>";
//if
(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",
$str))
{
//只能在GB2312情况下使用
if
(preg_match("/^[x7f-xff]+$/",
$str))
{
//兼容gb2312,utf-8
echo
"正确输入";
}
else
{
echo
"错误输入";
}
?>
</BODY>
</HTML>
‘叁’ PHP判断数字,汉字和英文
<?
function checkStr($str){
$output='';
$a=ereg('['.chr(0xa1).'-'.chr(0xff).']', $str);
$b=ereg('[0-9]', $str);
$c=ereg('[a-zA-Z]', $str);
if($a && $b && $c){ $output='汉字数字英文的混合字符串';}
elseif($a && $b && !$c){ $output='汉字数字的混合字符串';}
elseif($a && !$b && $c){ $output='汉字英文的混合字符串';}
elseif(!$a && $b && $c){ $output='数字英文的混合字符串';}
elseif($a && !$b && !$c){ $output='纯汉字';}
elseif(!$a && $b && !$c){ $output='纯数字';}
elseif(!$a && !$b && $c){ $output='纯英文';}
return $output;
}
echo checkStr('5爱u');
?>
‘肆’ php如何判断大小写字母,数字,ASCII符号
header('Content-Type:text/html;charset=utf-8');
$subject='fgGGGsdfgs';
if(preg_match('@^d+$@',$subject)){
echo'数字';
}elseif(preg_match('@^w+$@',$subject)){
echo'英文';
}else{
echo'混合';
}
上面代码是用正则来判断的
‘伍’ php 如何识别文本语言种类,比如输入“你好”,返回“中文”;输入“hello”,返回英文
判断文本语言的种类其实是判断字符集的位置范围,这里提供几款正则给你参考:
<?php
$string='网络知道';
if(preg_match_all("/^([x81-xfe][x40-xfe])+$/"),$string,$match)
//使用preg_match_all判断的是全部是中文
//若使用preg_match则判断的是是否包含中文
//$match是一符合正则要求结果的多维数组
//如果是UTF-8编码的话,则可以将正则替换成/^([u4e00-u9fa5])+$/
{
echo'中文';
}
else
{
echo'不是中文';
}
?>
‘陆’ php 判断 用户名 英文或者数字
用正则来判断,如检查是否数字的代码: 1 2 if(preg_match("/^\d*$/",$fgid)) echo('是数字'); else echo('不是数字'); 验证由26个英文字母组成的字符串:^[A-Za-z]+$ 验证由26个大写英文字母组成的字符串:^[A-Z]+$ 验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
‘柒’ 我用php写的,我想判断表单提交的内容是中文还是英文,要怎么写呢
mb_strlen 无论中英文都算1
strlen 中文算2,英文算1,
接收内容之后mb_strlen($str) == strlen($str) 就是英文
mb_strlen($str) == 2*strlen($str),是中文
否则是混排。
有点投机的做法
‘捌’ php 如何判断字符是汉字还是英文
常见的就是用strlen()和mb_strlen()函数
strlen($str); 中文utf8占3个字符
mb_strlen($str,'utf8'); 中文utf8占1个字符
可以根据strlen()和mb_strlen()返回结果,两者比较判断是汉字、英文还是中英混合
strlen() 等于 mb_strlen() 全英
strlen() 对 mb_strlen() 取余为0 全汉
需要注意的是,mb_strlen并不是PHP核心函数,使用前需要确保在php.ini中加载了php_mbstring.dll,即确保“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函 数的问题。
‘玖’ php如何判断一个字符是中文还是英文
functionischinese($s){
$allen=preg_match("/^[^/x80-/xff]+$/",$s);//判断是否是英文
$allcn=preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$s);//判断是否是中文
if($allen){
return'英文';
}else{
if($allcn){
return'中文';
}else{
return'中英混合';
}
}
}