php对字符串的操作2之 处理字符串的内置函数
1,获取字串:substr($str,$start,$length)
mb_substr($str,$start,$length,'utf-8'); 更换为utf8编码,能准确的截取中文
<?php $email = 'clinqxia@qq.com'; echo '原始字符串:'.$email; echo '<hr>'; //从0角标开始,获取7个字符 echo substr($email,0,7);echo '<hr>'; //-3:负数表示从末尾往前数 echo substr($email,-3,3);echo '<hr>'; ?>
2,替换字符串:substr_replace()
<?php $email = 'clinqxia@qq.com'; echo '原始字符串:'.$email; echo '<hr>'; //注意,从负数和正数不同,负数是从-1开始数,正数从0开始 echo substr_replace($email,'163',9,2);echo '<hr>'; echo substr_replace($email,'cn',-3,3);echo '<hr>'; //将字串长度设置为0,实现无删除的插入 echo substr_replace($email,'_zhu',8,0);echo '<hr>'; //设置空字串,是实现插入式的删除 echo substr_replace($email, '', 0,4);echo '<hr>'; //在起始位置插入字符 echo substr_replace($email, '我的邮箱:', 0,0);echo '<hr>'; ?>
3,substr_count():查询字串出现的频率(次数)
<?php $email = 'My blog name is cl94,welcome to my blog'; echo '原始字符串:'.$email; echo '<hr>'; echo substr_count($email,'blog',0,10); echo '<hr>'; ?>
4,substr_compare($str,$str1,startpos):比较字串
<?php $str1 = 'My blog name is cl94,welcome to my blog'; $str2 = 'My blog'; //startpos:规定在 string1 中的何处开始比较。如果为负数,则从字符串末端开始计数。 //返回结果 (0:相等;<0:$str1<$str2; >0:$str1>$str2); //比较的是ascii值 echo substr_compare($str1, $str2,0); echo '<hr>'; echo substr_compare($str1, $str2,0,7);echo '<hr>'; ?>
5,strlen():得到字符串的长度
<?php $str1 = 'China'; $str2 = '中国'; echo strlen($str1); echo '<hr>'; //strlen()无法正确处理中文字符串,它得到的只是字符串所占的字节数 echo strlen($str2);echo '<hr>'; //我们可以用mb_来指定编码以针对正文 echo mb_strlen($str2,'utf-8'); ?>
6,strpos():获取子串的位置,字串检索函数,根据内容查找索引
<?php $str1 = 'adaad fwwr<h2>这里是我们要获取的有效字串</h2>d2asasdaqr'; //返回字串的索引 echo $start = strpos($str1,'<h2>',0); echo '<hr>'; echo $end = strpos($str1,'</h2>',0); echo '<hr>'; //这个可以用作爬虫 echo substr($str1,$start+4,$end-($start+4)); ?>
7,strstr($str1,$str2):查找子串匹配位置后的所有字符
<?php $str1 = '我是小跳蛙'; echo strstr($str1,'小'); echo '<hr>'; //反向取 echo strstr($str1,'小',true); ?>
8,字符串替换函数
<?php $email = 'chenglin@163.com'; echo $email;echo '<hr>'; echo str_replace('163','qq',$email);echo '<hr>'; //将参数变成数组进行替换 $hobby = '我最喜欢吃苹果、香蕉、桃子'; echo $hobby;echo '<hr>'; $rep1 = ['苹果','香蕉','桃子']; $rep2 = ['木瓜','菠萝','榴莲']; echo $hobby = str_replace($rep1,$rep2,$hobby);echo '<hr>'; $url = 'c://demo/index.php'; echo str_replace('/','\\',$url); ?>
9,explode():字符串的分割
implode():将数组组合成字符串
<?php //字符串的分割 $path = 'C://www/blog/index.php'; dump(explode('/',$path));echo '<hr>'; //字符串的组合 $city = implode('--',['合肥','芜湖','安庆','六安']); if(is_string($city)){ echo $city; } ?>
应用
<?php //判断a字符串是否以b字符串开头 //用到strpos()函数 $a = '上海交通大学'; if(strpos($a,'上海',0)===0){ echo '$a以上海开头';echo '<hr>'; } //判断a字符串是否以b字符串结束 //用到substr_compare()函数、strlen()函数 if(substr_compare($a,'大学',-strlen('大学'))===0){ echo '$a以大学结束'; } ?>