PHP实战之字符串函数解读

风流意气都作罢 提交于 2020-08-19 03:23:11

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字符串函数中的一些常用回顾,还有很多字符串函数并没有回顾到,你感兴趣可以多翻翻手册,我这边就暂时告一段落。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!