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以大学结束';
    }
?>

 

 

 

posted @ 2018-05-09 13:41  cl94  阅读(215)  评论(0编辑  收藏  举报