PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)

5年以前  |  阅读数:1011 次  |  编程语言:PHP 

本文实例总结了PHP字符串处理技巧。分享给大家供大家参考,具体如下:

Demo1.php


    <?php
      //源代码是文本形式,页面显示是 web 形式
      $str = '      PHP      ';
      //清理一下两边的空格 ltrim 只清理左,rtrim只清理右边
      echo ltrim($str);
      echo '<br/>';
      echo rtrim($str);
      echo '<br/>';
      //两边都清理
      echo trim($str);
      //echo chop($str);
    ?>

Demo2.php


    <?php
      $str = "This is 一站式建网站 \n This is a OneStopWeb";
      //但是,我现在想要在网页中实现换行
      //在回帖的时候,一个回车就是 \n
      //我们通过函数来实现转换过程
      echo nl2br($str);
    ?>

Demo3.php


    <?php
      //将所有字符转换成 HTML
      $str = '<strong>阅谁问君诵,水落清香浮。</strong>';
      //echo htmlentities($str);
      //我们只要转换特殊字符即可
      //echo htmlspecialchars($str);//<strong>阅谁问君诵,水落清香浮。</strong>
      echo strip_tags($str); //阅谁问君诵,水落清香浮。
    ?>

Demo4.php


    <?php
      $str = 'This is "一站式建网站" \n This is a OneStopWeb';
      //对于即将插入数据库的字符串,把有问题的字符处理一下
      //echo addslashes($str); //This is \"一站式建网站\" \\n This is a OneStopWeb
      $a = addslashes($str);
      //这个 $a 就是写入数据库的,我拿出来的话,就会有 \ 这个符号
      echo stripcslashes($a);
      //首先将写进数据库的字符串通过 addslashes() 函数过滤一下,然后拿出来的时候
      //再通过 stripcslashes() 解析一下显示
    ?>

Demo5.php


    <?php
      //将字符串转换成大写
      echo strtoupper('oneStopWeb');//ONESTOPWEB
      //将字符串转换成小写
      echo strtolower('oneStopWeb');//onestopweb
      //将第一个字母转换成大写
      echo ucfirst('oneStopWeb'); //OneStopWeb
    ?>

Demo6.php


    <?php
      $str = 'oneStopWeb';
      //echo str_pad($str,11).'is good!'; //oneStopWeb is good!
      //oneStopWeb###
      //echo str_pad($str,13,'#')
      echo str_pad($str,18,'#',STR_PAD_BOTH);
      echo '<br/>';
      echo str_pad($str,18,'#',STR_PAD_LEFT);
      echo '<br/>';
      echo str_pad($str,18,'#',STR_PAD_RIGHT);
    /**
     * ####oneStopWeb####
     * ########oneStopWeb
     * oneStopWeb########
     * */
    ?>

Demo7.php


    <?php
      //explode -- 使用一个字符串分割另一个字符串
      //返回的是一个数组
      //explode 第一参数是分割字符串,第二个参数是要被分割的字符串
      $email = explode('@','oneStopWeb@163.com');
      //print_r($email); //Array ( [0] => oneStopWeb [1] => 163.com )
      //分割完了之后,我经过一轮筛选,还要重新组合
    // $arr = array('oneStop','@','163.com');
    // $str = implode('&',$arr);
    // echo $str;//oneStop&@&163.com
      $str = implode(' - ',$email);
      echo $str; //oneStopWeb - 163.com
    ?>

Demo8.php


    <?php
    // $str = 'I will be back';
    // $arr = explode(' ',$str);
    // print_r($arr); //Array ( [0] => I [1] => will [2] => be [3] => back )
      $str = 'I,will.be#back';
      $tok = strtok($str,',.#');
      //echo $tok;
      while($tok){
        echo $tok.'<br/>';
        $tok = strtok(',.#');
      }
    // $str = 'I will be back';
    // $tok = strtok($str,' ');
    // //echo $tok;
    // while($tok){
    //   echo $tok.'<br/>';
    //   $tok = strtok(' ');
    // }
    // $tok = strtok(' ');
    // echo $tok;//Iwill
    // //指针没有下移,而是重新来了一次
    // $tok = strtok($str,' ');
    // echo $tok;
    ?>

Demo9.php


    <?php
      $str = 'oneStopWeb@163.com';
      //中间的参数表示开始的位置,位置是从 0 开始的,最后一个参数,是取出的个数
      echo substr($str,0,5)  ;//oneSt
    ?>

Demo10.php


    <?php
      //$str = 'oneStopWeb@163.com';
      $str = '阅谁问君诵,水落清香浮。'; //中文乱码
      print_r(str_split($str));
    ?>

Demo11.php


    <?php
      $str = 'oneStopWeb@163.com';
      echo strrev($str); //moc.361@beWpotSeno
    ?>

Demo12.php


    <?php
      //通过 == 来比较字符串是否一致
      //最后的返回值是布尔值
      //echo 'a' == 'a';
      //比较两个字符串
      //echo strcmp('a','b');
    // if(strcmp('a','a') == 0){
    //   echo '相等';
    // }
      //echo strcasecmp('B','b'); //不区别大小写
      //目前是非自然排序
      //echo strcmp('2','10');//1
      //如果按照自然排序方式比较呢?
      echo strnatcmp('2','10');//-1
    ?>

Demo13.php


    <?php
      //strspn
      //后面两个数字的参数,是从第几位开始,取多少位
      echo strspn('one','oneStopWeb@163.com',1,5);
    ?>

Demo14.php


    <?php
      //测试字符串的长度
      echo strlen('oneStopWeb@163.com') ;
    ?>

Demo15.php


    <?php
      //测试字符串出现的频率
      echo substr_count('oneStopWeb@163.com','o');
    ?>

Demo16.php


    <?php
      //从指定的字符串开始输出之后的字符串
      echo strstr('oneStopWeb@163.com','@');
      //不区别大小写的
      echo stristr('oneStopWeb@163.com','s');
    ?>

Demo17.php


    <?php
      //查找某字符串最先出现的位置
      //位置是从第 0 个位置开始计算,W第一次出现在第 7 个位置上
      echo strpos('oneStopWeb@163.com','W');
      //最后出现的位置
      echo strrpos('oneStopWeb@163.com','o');
    ?>

Demo18.php


    <?php
      //字符串替换
      //第一个参数表示要查找的字符串(部分)
      //第二个参数表示要替换成的字符串(部分)
      //第三个参数表示原来的被替换的完整字符串
      //echo str_replace('one','yi','oneStopWeb@163.com');//yiStopWeb@163.com
      //str_ireplace 是不区分大小写
      //echo str_ireplace('oNe','yi','oneStopWeb@163.com');//yiStopWeb@163.com
      //从第一个位置开始(参数3),取出 5 个来(参数4),将它替换成 ###(参数2)
      echo substr_replace('oneStopWeb@163.com','###',0,5);
    ?>

Demo19.php


    <?php
      //取中文长度
      $str = '阅谁问君诵,水落清香浮。';
      //用普通的 strlen 取一个中文字,就算两个
      //echo strlen($str) ;
      //使用 mb_strlen 来取中文,有第二个参数,字符编码
      echo mb_strlen($str,'GBK');//12
      //如果你使用普通的 strlen 这个函数,我取 1 个字符
      //采用 mb_substr 来取中文字符
      echo mb_substr($str,2,1,'GBK');//问
    ?>

Demo20.php


    <?php
      $str = '阅谁问君诵,水落清香浮。';
      //求出 o 最先出现的位置
      //中文的算法,两个字符一个中文字
      //mb 就算一个
      //echo strpos($str,'问');//4
      //按中文一个字符来计算,这样不会出现半个中文的状态
      echo mb_strpos($str,'问',0,'GBK');
    ?>

Demo21.php


    <?php
    // $str = '阅谁问君诵,水落清香浮。'  ;
    // echo mb_substr($str,0,1,'GBK');
      $str ='阅谁问君诵,水落清香浮。';
      //这个就无所谓用 mb_strstr
      echo strstr($str,'水');
    ?>

Demo22.php


    <?php
      $str ='阅谁问君诵,水落清香浮。';
      echo mb_substr_count($str,'问','GBK');
    ?>

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例