PHP实战之字符串函数解读

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>> hot3.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值