很多站长朋友们都不太清楚php字符判断,今天小编就来给大家整理php字符判断,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php怎样判断字符串是什么编码 2、 php判断是否有中文字符的两种方法 3、 php中如何判断内容中是否包含指定的文字? 4、 php中如何判断中英文字符 5、 php 如何判断字符是汉字还是英文 6、 php 判断一个字符串里是否有某个字符 php怎样判断字符串是什么编码php判断字符编码的二个方法:
一个是用php自带的函数mb_detect_encoding,一个是个人写函数来处理。
方法1,使用mb_detect_encoding函数。
?
1
2
3
4
<?php
$str=”<a href="" target="_blank" class="infotextkey">脚本</a>”;
echo mb_detect_encoding($str);
?>
方法2,自定义函数。
?
1
2
3
4
5
6
7
8
9
10
11
<?php
function chkbm($string){
$bm = array(‘ASCII’, ‘GBK’, ‘UTF-8′);
foreach($bm as $c){
if( $string === <a href="" target="_blank" class="infotextkey">iconv</a>(‘UTF-8′, $c, iconv($c, ‘UTF-8′, $string))){//转换编码后是不是相等
return $c;
}
}
return null;
}
?>
php判断是否有中文字符的两种方法1、用正则判断是否为中文的代码
(1)文件为GB2312格式:
<?PHP
$str= 'incode';
//$str= '程序设计';
if (!preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str))
{
echo '请您使用中文,谢谢!';
}?>
(2)文件为UTF-8格式:
把正则判断改为://if(preg_match("/([/x4e00-/x9fa5])/",$str, $arr) )
2、使用php中的mb_strlen和strlen函数判断 <!-- [if gte mso 10]>
方法比较简单:分别使用以上两个函数以当前编码测出字符的返回值,然后比较返回值。
返回值相等的为纯英文、纯数字、英数混排;
返回值不等,且strlen返回值可被mb_strlen整除的为纯汉字
返回值不等,且strlen返回值不可被mb_strlen整除的为英汉或数汉混排
代码如下:
<?php
$strarray[1] = "hello";
$strarray[2] = "123456";
$strarray[3] = "123hello";
$strarray[4] = "你好";
$strarray[5] = "123你好";
$strarray[6] = "hello你好";
$strarray[7] = "123hello你好";
foreach ($strarray as $ke=>$value) {
$x = mb_strlen($value,'gb2312');
$y = strlen($value);
echo $strarray[$ke].' <span style="color: #ff0000;" mce_style="color: #ff0000;">'.$x.'</span> <span style="color:#ff0000;" mce_style="color:#ff0000;">'.$y.'</span>';
}?>
输出结果:hello 5 5 123456 6 6 123hello 8 8你好 4 6 123你好 7 9hello 你好 9 11 123hello你好 12 14
php中如何判断内容中是否包含指定的文字?如果不是特别复杂的字符判断,不建议用正则,php的字符串函数完全可以实现,strpos()例如:
$x = "abc张三klllk";
if(strpos($x,"张三") > 0){
echo "ok";
}
当然这样会有一个问题,就是当"张三"出现在字符串开头的时候,结果也为0,
这时候就要在字符串前加一特殊字符来判断。
$x="张三abc";
$x1 = "%**#".$x;
if(strpos($x1,"张三") > 0){
echo "ok";
}
扩展资料
用explode进行判断PHP判断字符串的包含代码如下:
function checkstr($str){
$needle ='a';//判断是否包含a这个字符
$tmparray = explode($needle,$str);
if(count($tmparray)>1){
return true;
} else{
return false;
}
}
参考资料:百度百科 - PHP类
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 如何判断字符是汉字还是英文常见的就是用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 判断一个字符串里是否有某个字符先看下我们的代码,如图,定义了一个字符串,然后调用php的strpos方法。
result1 = strpos(str, 'sougou'); // 查找字符sougou在字符串出现的位置。
result2 = strpos(str, 'sohu'); // 查找字符sohu在字符串出现的位置。
如果查找的字符不在字符串里,即字符串不包含查找的字符,strpos方法就会返回 false.
02
然后是一些输出代码,输出显示我们的结果
03
运行代码,看下我们的结果,如图,字符串里有包含sougou和sohu啊,为什么结果都显示不包含的?
04
原来字符串的开始位置是从0开始的,而不是从1开始。0也相当于是false了,我们修改下代码,判断代码里,加多一个等号(=),即是真正的false才是没找到字符串。
05
再次运行代码,结果如图,sougou字符是有查找到了,sohu还是没有。
06
原来strpos方法是区分大小写的,字符串里的sohu是大写的S,所以结果是没有找到这个sohu的字符串。怎么修改?我们可以用另一个方法stripos,这个方法是不区分大小的。
关于php字符判断的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php字符判断 php 判断字符串是否存在某个字符串的详细内容...