- 目录
- 1.前言
- 2.字符串出现位置
- 2.1 strstr():区分大小写查找第一次出现的位置
- 2.2 stristr():不区分大小写查找第一次出现的位置
- 2.3 strpos():是否包含
- 2.4 explode():分割字符串
- 2.5 substr():指定位置判断指定字符串
- 2.6 substr_count():统计子字符串出现次数
- 3.替换字符串
- 3.1 str_replace():区分大小写替换字符
- 3.2 substr_replace() :兼容中文替换字符
- 4. 总结
1.前言
在项目开发过程中,出现了bug,就是封装SQL语句产生了多余的字符串,当想根据字符串查询然后删除的时候,发现关于字符串的函数有点忘记了.下面来回顾一下。
2.字符串出现位置
2.1 strstr():区分大小写查找第一次出现的位置
strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。
<?php $email = 'user@example.com'; $domain = strstr($email, '@'); echo $domain; // prints @example.com ?>
2.2 stristr():不区分大小写查找第一次出现的位置
stristr() 函数查找字符串在另一个字符串中第一次出现的位置。如果成功,则返回字符串的其余部分(从匹配点)。如果没有找到该字符串,则返回 false。它和strstr的使用方法完全一样.唯一的区别是stristr不区分大小写。
2.3 strpos():是否包含
strpos()函数查找字符串在另一个字符串是否包含。返回bool值FALSE和TRUE,必须用 “===”进行判断;strpos在执行速度上都比strstr()函数和stristr()函数快,另外strpos有一个参数指定判断的位置,但是默认为空.意思是判断整个字符串.缺点是对中文的支持不好。
<?php if(strpos('www.mtdg.club','mtdg') !== false){ echo '包含mtdg'; }else{ echo '不包含mtdg'; }
错误写法:
if(strpos('www.mtdg.club','mtdg')){ echo '包含mtdg'; }else{ echo '不包含mtdg'; }
原因是因为位置是从0开始,如果第一个位置找到了,就是0,php中的0在if中效果等同false,因此上面的判断将不会成立,这点要十分注意!
2.4 explode():分割字符串
使用一个字符串分割另一个字符串,并返回由字符串组成的数组。
<?php function checkstr($str){ $needle ='a';//判断是否包含a这个字符 $tmparray = explode($needle,$str); if(count($tmparray)>1){ //如果分割的数组超过本身1个那么表示有指定字符串 return true; } else{ return false; } }
2.5 substr():指定位置判断指定字符串
根据指定位置判断是否是指定字符
<?php $str1="<p>这是个dll文件,Win32.dll</p>"; if(substr($str1,-8)==".dll</p>"){ echo substr($str1,0,-4); }
2.6 substr_count():统计子字符串出现次数
$number = substr_count(big_string, small_string);统计“子字符串”在“原始字符串中出现的次数”,判断字符串big_string是否包含字符串small_string,返回true或fasle。
<?php function check_str($str, $substr) { $nums=substr_count($str,$substr); if ($nums>=1){ return true; }else{ return false; } }
3.替换字符串
当我们找到字符串了,怎么去掉了?下面我们简要的说几个函数,实现PHP去掉一个字符串中某个字符.
3.1 str_replace():区分大小写替换字符
以其他字符替换字符串中的一些字符(区分大小写)
$str="abcdefg";
$str=str_replace('a','',$str);
echo $str;//bcdefg
3.2 substr_replace() :兼容中文替换字符
把字符串的一部分替换为另一个字符串(兼容中文),可以用该函数实现敏感词过滤。
<?php $words = ["我", "你", "他", "她"];//过滤库 $sentence = "我和你一起去他家找她";//待过滤的句子 foreach($words as $word)//遍历过滤库的词 { $len = strlen($word);//获取过滤词的长度 $pos = strpos($sentence,$word);//寻找过滤词的位置 $sentence = substr_replace($sentence,'', $pos, $len); } echo $sentence; ?>
过滤后输出的结果为:
和一起去家找
4.总结
以上只是php字符串函数中的一些常用回顾,还有很多字符串函数并没有回顾到,你感兴趣可以多翻翻手册,我这边就暂时告一段落。
来源:oschina
链接:https://my.oschina.net/mtdg/blog/4294130