• PHP字符串处理


     /*1 字符串格式化 */
      $str = '     php      ';
      //清理两边的空格trim();,左边ltrim(); 边rtrin()
      echo trim($str);
      
      //nl2br();将换行符
    换成<br />
      //在发帖时一个回车就是
    ,无法换成<br />
      $str = "this is a student!
     this is a new!";
      echo nl2br($str);
      
      //将所有字符串转换成HTML
      $str = "<strong>党兴明</strong>";
      echo htmlentities($str);  //全部转换,中文名字也会转换,用的不多
      echo htmlspecialchars($str);  //只转换特殊的,标签会,内部中文不会
      echo strip_tags($str);   //将标签去掉
    
      //addslashes();
      $str = 'this is a teach. his is a "lee",
     this is a dang';
      //对于即将插入数据库的字符串,把有问题的字符处理一下,在引号前加
      echo addslashes($str);
      //如果从数据库拿出来,去掉
      echo stripslashes($str);
    
      //重新格式化大小写
        strtoupper()函数将字符串转换为大写
        strtolower()函数将字符串转换成小写
        ucfirst()函数将第一个字母转换为大写
        ucwords()函数将每个单词第一个字母转换为大写
      转大写
      echo strtoupper('dang xing ming');
     
      填充str_pad()将字符串用指定个数的字符填充字符串。
      $str = 'lee';
      echo str_pad($str, 10).'is good!'; //str后面将有7个空格来填充来满足10个的制定个数,体现在源代码里
      echo str_pad($str, 10,'#',STR_PAD_RIGHT);//指定填充字符和填充方向,STR_PAD_BOTH,两个方向
    
    /*2 操作字符串  */
      //切割字符串
      $email = explode('@','yc60.com@gmail.com');//按@切割字符串,是个数组
      print_r($email);
      组合起来:经过操作后再组合起来
      $arr = array('lee','dang','haha');
      $str = implode('$', $arr);
      print_r($str);
      对于英文,strtok()函数一次只从字符串取出一些片段(称为令牌)。对于一次从字符串中取出一个单词的处理来说,strtok()函数比explode()函数的效果更好。
      $str = 'i,will#be.back';
      $sok = strtok($str, ',#.');
      while (!!$sok){
          echo $sok.'<br />';
          $sok = strtok(',#.'); //它会记住切割$str,不要重新传字符串
      }
      
      //substr();取一部分字符串
      $str = 'yc60.com@gmail.com';
      echo substr($str, 1,5); //从第一个位置取5个,第一个字母是0位置
      
    
      分解字符串:str_split();一个一个字节拆开,中文不行,一个会中文两个字节
      $str = 'this is a';
      print_r(str_split($str));
      
      逆置字符串:strrev()可以将一个字符串逆反过来。
      echo strrev($str);
    
    /*3 字符串比较  */
    
      //==比较相等,返回布尔值
      echo 'a' == 'a'; //1
      
      //strcmp();比较两个字符串,0相等,-1小于,1大于
      echo strcmp('a','b');
      //不区分大小写
      echo strcasecmp('a', 'A');
      //非自然排序
      echo strcmp('2','10');  //1
      //自然排序
      echo strnatcmp('2', '10');  //-1
    
      //strspn();返回一个字符串中包含有另一个字符串中字符的第一部分的长度。求两个字符串之间相同的部分。
      echo strspn('gsmail','yc60.com@gmail.com',2,10); //从第0位取2位,指第一个字符串
    
      //strlen();字符串长度
    
      //substr_count();出现频率
      echo substr_count('yc60.com@gmail.com','c');  //3
    
    /*4 查找替换字符串  */
    
    //   //查找字符串
      //strstr();从指定的字符串开始输出之后的字符串
      echo strstr('yc60.com@gmail.com','@');//gmail.com
      //不区分大小写stristr();
      echo stristr('yc60.com@Gmail.com','g');//Gmail.com
      //strchr();strstr()的别名,用途一样
    
    //   //查找某字符串最先出现的位置
      //现在的PHP手册建议使用strpos()函数代替strstr()函数来查看一个子字符串在一个字符串中出现的位置,因为前者的运行速度更快。
      echo strpos('yc60.com@gmail.com',c); //1,从0开始计算
      //最后出现的位置
      echo strrpos('yc60.com@gmail.com', c);//15
    
    //   //替换字符串
      echo str_replace('lee','dang','this is lee');//在第三个参数里找到第一个参数替换成第二个参数
      echo str_ireplace('lee','dang','this is Lee');//不区分大小写
      echo substr_replace('this is lee','$$$',0,5);//从第一个位置开始,取出5个,替换成$$$
    
    
    /*5 处理中文字符串  */
    // 中文字符可以是gbk,utf8,gb2312
    // mb_strlen() 对应的函数为 strlen()  求字符串的长度
    // mb_strstr()  对应的函数为 strstr()  求某字符串到结尾的字符
    // mb_strpos() 对应的函数为 strpos()  求出字符最先出现处
    // mb_substr() 对应的函数为 substr()  取出指定的字符串
    // mb_substr_count() 对应函数为 substr_str() 返回字符串出现的次数
      
    //   //字符串长度
      $str = '我是党兴明';
      echo strlen($str); //15,utf8三个,gbk两个
      echo mb_strlen($str,'utf8'); //5
      
      //求党到结尾的字符串
      echo mb_strstr($str,'党'); //党兴明
      //最想出现的位置
      echo mb_strpos($str, '兴'); //3
      //从第二个取两个
      echo mb_substr($str,1,2); //是党
      //返回字符串出现的次数
      echo mb_substr_count($str, '党');//1
  • 相关阅读:
    Boost.Asio c++ 网络编程翻译(10)
    建站手册:网站品质
    建站手册-template
    CDN:分类
    CDN:BootCDN 项目列表-摘录-20180405
    CDN:BootCDN
    CDN:目录
    CDN-template
    JavaScript-Tool:md5.js
    Regexp-Utils:基本
  • 原文地址:https://www.cnblogs.com/by-dxm/p/6143907.html
Copyright © 2020-2023  润新知