首先strstr()函数的作用是:返回一个字符串在另一个字符串中首次出现的位置到后者末尾的子字符串(大小写敏感),以下几个函数均可用来判断某字符串是否包含另外一个字符串PHP中判断一个字符串是否包含其它字符是很常见的操作。虽然很简单,但还是写了几个函数,质量可能不是很高,权当锻炼。下面我们一起来看一下吧。
![a73939d7455e6a847d2f6e143e6ceaa8.png](https://img-blog.csdnimg.cn/img_convert/a73939d7455e6a847d2f6e143e6ceaa8.png)
/**
*以下几个函数均可用来判断某字符串是否包含另外一个字符串
*PHP中判断一个字符串是否包含其它字符是很常见的操作。
*虽然很简单,但还是写了几个函数,质量可能不是很高,权当锻炼。
*如果这几个函数恰好能帮上你的忙,我将会很高兴的。
*/
/**
*利用一下strpos()函数
*@paramunknown_type$haystack
*@paramunknown_type$needle
*/
functionisInString1($haystack,$needle){
//防止$needle位于开始的位置
$haystack='-_-!'.$haystack;
return(bool)strpos($haystack,$needle);
}
/**
*利用字符串分割
*@paramunknown_type$haystack
*@paramunknown_type$needle
*/
functionisInString2($haystack,$needle){
$array=explode($needle,$haystack);
returncount($array)>1;
}
/**
*用了一下正则,这种方法十分不建议,尤其是$needle中包含
*特殊字符,如^,$,/等等
*@paramunknown_type$haystack
*@paramunknown_type$needle
*/
functionisInString3($haystack,$needle){
$pattern='/'.$needle.'/';
return(bool)preg_match($pattern,$haystack);
}
/**
*利用一下strpos()函数
*@paramunknown_type$haystack
*@paramunknown_type$needle
*/
functionisInString4($haystack,$needle){
returnfalse!==strpos($haystack,$needle);
}
//测试
$haystack='IamITBDW';
$needle='IT';
var_dump(isInString1($haystack,$needle));
我觉得最简单的就是这种了strpos($a,$b)!==false如果$a中存在$b,则为true,否则为false。
用!==false(或者===false)的原因是如果$b正好位于$a的开始部分,那么该函数会返回int(0),那么0是false,但$b确实位于$a中,所以要用!==判断一下类型,要确保是严格的false。昨天晚上去中关村图书大厦,看到一本书中用的是strpos===true来判断,这是极其不正确的。。。
出错的书为《PHP求职宝典》107页(2012-02-26更新)
其它的还有PHP原生支持的函数,如strstr(),stristr()等,直接判断就可以了。
定义和用法
strstr()函数搜索一个字符串在另一个字符串中的第一次出现。
该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回false。
语法
strstr(string,search)
参数描述
string必需。规定被搜索的字符串。
search必需。规定所搜索的字符串。如果该参数是数字,则搜索匹配数字ASCII值的字符。
提示和注释
注释:该函数是二进制安全的。
注释:该函数对大小写敏感。如需进行大小写不敏感的搜索,请使用stristr()。
例子1
echostrstr("Helloworld!","world");
?>
//输出:world!
例子2
在本例中,我们将搜索"o"的ASCII值所代表的字符:
echostrstr("Helloworld!",111);
?>
//输出:oworld!
例子3
$email='admin@jb51.net';
$domain=strstr($email,'@');
echo$domain;//prints@jb51.net
$user=strstr($email,'@',true);//AsofPHP5.3.0
echo$user;//printsadmin
?>
$city_str=fopen(cgi_path."/data/weather/city.dat","r");
$city_ch=fread($city_str,filesize(cgi_path."/data/weather/city.dat"));
$city_ch_arr=explode("|",$city_ch);
//如果能匹配到所在市
if(strstr($area_ga,"市")){
foreach($city_ch_arras$city_ch_arr_item){
if(@strstr($area_ga,$city_ch_arr_item)){
echo$area_ga.'
';
echo$city_ch_arr_item;
$s_city=$city_ch_arr_item;
}
}
}
//如果找不到市那么看看是不是能找到省有时会有这样的情况:广东省长城宽带这样的一律归属到该省省府
elseif(strstr($area_ga,"河北")!==false){
$s_city="石家庄";
}elseif(strstr($area_ga,"福建")!==false){
$s_city="福州";
}elseif(strstr($area_ga,"台湾")!==false){
$s_city="台北";
}elseif(strstr($area_ga,"香港")!==false){
$s_city="香港";
}elseif(strstr($area_ga,"广西")!==false){
$s_city="南宁";
}elseif(strstr($area_ga,"浙江")!==false){
$s_city="杭州";
}elseif(strstr($area_ga,"江苏")!==false){
$s_city="南京";
}elseif(strstr($area_ga,"山东")!==false){
$s_city="济南";
}elseif(strstr($area_ga,"安徽")!==false){
$s_city="合肥";
}elseif(strstr($area_ga,"湖南")!==false){
$s_city="长沙";
}elseif(strstr($area_ga,"四川")!==false){
$s_city="成都";
}elseif(strstr($area_ga,"云南")!==false){
$s_city="昆明";
}elseif(strstr($area_ga,"广东")!==false){
$s_city="广州";
}elseif(strstr($area_ga,"贵州")!==false){
$s_city="贵阳";
}elseif(strstr($area_ga,"西藏")!==false){
$s_city="拉萨";
}elseif(strstr($area_ga,"新疆")!==false){
$s_city="乌鲁木齐";
}elseif(strstr($area_ga,"蒙古")!==false){
$s_city="呼和浩特";
}elseif(strstr($area_ga,"黑龙江")!==false){
$s_city="哈尔滨";
}elseif(strstr($area_ga,"辽宁")!==false){
$s_city="沈阳";
}elseif(strstr($area_ga,"吉林")!==false){
$s_city="长春";
}elseif(strstr($area_ga,"河南")!==false){
$s_city="郑州";
}elseif(strstr($area_ga,"湖北")!==false){
$s_city="武汉";
}elseif(strstr($area_ga,"山西")!==false){
$s_city="太原";
}elseif(strstr($area_ga,"陕西")!==false){
$s_city="西安";
}elseif(strstr($area_ga,"甘肃")!==false){
$s_city="兰州";
}elseif(strstr($area_ga,"宁夏")!==false){
$s_city="银川";
}elseif(strstr($area_ga,"海南")!==false){
$s_city="海口";
}elseif(strstr($area_ga,"江西")!==false){
$s_city="南昌";
}elseif(strstr($area_ga,"澳门")!==false){
$s_city="澳门";
}
//如果都不存在就是默认显示广州比如本地机
else{
$s_city="广州";
}
如上代码:
其中city.dat中是一些城市格式是这样的
广州|深圳|汕头|惠州|珠海|揭阳|佛山|河源|阳江|茂名|湛江|梅州|肇庆|韶关|潮州|东莞|中山|清远|江门|汕尾|云浮|增城|从化|乐昌|南雄|台山|开平|鹤山|恩平|廉江|雷州|吴川|高州|化州|高要|四会|兴宁|陆丰|阳春|英德|连州|普宁|罗定|北京|天津|上海|重庆|乌鲁木齐|克拉玛依|石河子|阿拉尔|图木舒克|五家渠|哈密|吐鲁番|阿克苏|喀什|和田|伊宁|塔城|阿勒泰|奎屯|博乐|昌吉|阜康|库尔勒|阿图什|乌苏|拉萨|日喀则|银川|石嘴山|吴忠|固原|中卫|呼和浩特|包头|乌海|赤峰|通辽|鄂尔多斯|呼伦贝尔|巴彦淖尔|乌兰察布|霍林郭勒|满洲里|牙克石|扎兰屯|根河|额尔古纳|丰镇|锡林浩特|二连浩特|乌兰浩特|
参考
echostrstr('aaaaaaaaaaaboaaaaaaaaaaaaboxcccccccccbcccccccccccccc','box')."
n";
//输出boxcccccccccbcccccccccccccc
//完整匹配中间的box不因前而的b而停止
echostrstr('aaaaaaAbaaaaaaaaaaaaaaaaboxccccccccccccboxccccccccccc','box')."
n";
//输出boxccccccccccccboxccccccccccc
//有两个关键字时,遇到第一个停止.
echostrstr('SubscrtibeourtofreenewsletteraboutNewFreewto','to')."
n";
//输出tofreenewsletteraboutNewFreewto
?>
以上就是phpstrstr查找字符串中是否包含某些字符的查找函数的简单分享,想要学好PHP一定要选择专业靠谱的PHP培训机构,扣丁学堂PHP培训不仅有专业的老师和与时俱进的课程体系,还有大量的PHP视频教程供学员观看学习,想要学好PHP的小伙伴抓紧时间行动吧。扣丁学堂PHP技术交流群:374332265。