PHP中如何判断一个字符串中是否有某个字符?
PHP语言是一个功能强大的嵌入式HTML脚本语言,它的易用性让许多程序员选择使用。PHP判断字符串的包含,可以使用PHP的内置函数strstr,strpos,stristr直接进行判断.也可以通过explode函数的作用写一个判断函数。
1. strstr
strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。
该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。
代码如下:
<?php $email = 'user@momojc.cn'; $domain = strstr($email, '@'); echo $domain; //输出 @momojc.cn ?>
2. stristr
它和strstr的使用方法完全一样.唯一的区别是stristr不区分大小写.
stristr() 函数查找字符串在另一个字符串中第一次出现的位置。
如果成功,则返回字符串的其余部分(从匹配点)。如果没有找到该字符串,则返回 false。
<?php echo stristr("www.momojc.cn","MOMO"); //输出 momojc.cn ?>
3. strpos
strpos函数返回boolean值.FALSE和TRUE不用多说.用 “===”进行判断.strpos在执行速度上都比以上两个函数快,另外strpos有一个参数指定判断的位置,但是默认为空.意思是判断整个字符串.缺点是对中文的支持不好。
示例1
<?php if(false !== strpos("www.momojc.cn","momo")){ echo "包含momo"; }else{ echo "不包含momo"; } ?>
示例2
<?php $str= 'momojc.cm'; $needle= 'jc'; $pos = strpos($str, $needle); echo $pos; //输出 4 ?>
4. explode
用explode进行判断PHP判断字符串的包含
示例
<?php function checkstr($str){ $needle = "o";//判断是否包含o这个字符 $tmparray = explode($needle,$str); if(count($tmparray)>1){ return true; } else{ return false; } } if(checkstr("momojc.cn")){ echo "包含"; }else{ echo "不包含"; } ?>
5. substr
判断最后一个字符是不是制定字符
<?php $str1="<p>这是个技术教程分享网站www.momojc.cn</p>"; if(substr($str1,-7)==".cn</p>"){ echo substr($str1,3,-4); } ?>
6.substr_count
统计“子字符串”在“原始字符串中出现的次数”
<?php echo substr_count("wwww.momojc.cn","mo"); //输出 2 ?>
7.in_array
采用 in_array(value,array,type), type 可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。
<?php $sites = array("momo", "momojc", "MOMO教程", "momojc.cn"); if (in_array("momo", $sites)) { echo "找到匹配项!"; } else { echo "没有找到匹配项!"; } ?>
8.array_key_exists
array_key_exists() 函数判断某个数组中是否存在指定的 key,如果该 key 存在,则返回 true,否则返回 false。
<?php $a=array("MOMO"=>"MOMO教程","momojc"=>"momojc.cn"); if (array_key_exists("momojc",$a)) { echo "Key exists!"; } else { echo "Key does not exist!"; } ?>