zoukankan      html  css  js  c++  java
  • 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以大学结束';
        }
    ?>

     

  • 相关阅读:
    第1课 Git、谁与争锋
    程序员最真实的10个瞬间
    程序员最真实的10个瞬间
    一文读懂前端缓存
    一文读懂前端缓存
    一文读懂前端缓存
    EF使用CodeFirst创建数据库和表
    EF使用CodeFirst创建数据库和表
    EF使用CodeFirst创建数据库和表
    ASP.NET MVC的过滤器笔记
  • 原文地址:https://www.cnblogs.com/cl94/p/9013685.html
Copyright © 2011-2022 走看看