加入收藏 | 设为首页 | 会员中心 | 我要投稿 肇庆站长网 (https://www.0758zz.cn/)- 数据分析、分布式云、安全管理、云计算、物联设备!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php字符串字符处理函数详解

发布时间:2022-07-28 10:32:33 所属栏目:PHP教程 来源:互联网
导读:本文章来给大家整理了大量的php字符串与字符处理函数,这些算法都是高效的,包括有:数组里查找某个元素,线性表的删除,复制字符串,删除字符串,截取字符串等等操作. 以下是代码片段: ?php //-------------------- // 基本数据结构算法 //-------------------- //
  本文章来给大家整理了大量的php字符串与字符处理函数,这些算法都是高效的,包括有:数组里查找某个元素,线性表的删除,复制字符串,删除字符串,截取字符串等等操作.
 
  以下是代码片段:
 
  <?php   
   
  //--------------------    
   
  // 基本数据结构算法   
   
  //--------------------    
   
  //二分查找(数组里查找某个元素)    
   
  function bin_sch($array,  $low, $high, $k){     
   
      if ( $low <= $high){     
   
          $mid =  intval(($low+$high)/2 );     
   
          if ($array[$mid] ==  $k){     
   
              return $mid;     
   
          }elseif ( $k < $array[$mid]){     
   
              return  bin_sch($array, $low,  $mid-1, $k);     
   
          }else{     
   
              return  bin_sch($array, $mid+ 1, $high, $k);     
   
          }     
   
      }     
   
      return -1;     
   
  }     
   
  //顺序查找(数组里查找某个元素)    
   
  function  seq_sch($array, $n,  $k){     
   
      $array[$n] =  $k;     
   
      for($i=0;  $i<$n; $i++){     
   
          if( $array[$i]==$k){     
   
              break;     
   
          }     
   
      }     
   
      if ($i<$n){     
   
          return  $i;     
   
      }else{     
   
          return -1;     
   
      }     
   
  }     
   
  //线性表的删除(数组中实现)    
   
  function delete_array_element($array , $i)    
   
  {    
   
          $len =  count($array);     
   
          for ($j= $i; $j<$len; $j ++){    
   
                  $array[$j] = $array [$j+1];    
   
          }    
   
          array_pop ($array);    
   
          return $array ;    
   
  }    
   
  //冒泡排序(数组排序)    
   
  function bubble_sort( $array)    
   
  {    
   
          $count = count( $array);    
   
          if ($count <= 0 ) return false;    
   
          for($i=0 ; $i<$count; $i ++){    
   
                  for($j=$count-1 ; $j>$i; $j--){    
   
                          if ($array[$j] < $array [$j-1]){    
   
                                   $tmp = $array[$j];    
   
                                   $array[$j] = $array[ $j-1];    
   
                                  $array [$j-1] = $tmp;    
   
                          }    
   
                  }    
   
          }    
   
          return $array;    
   
  }    
   
  //快速排序(数组排序)    
   
  function quick_sort($array ) {    
   
          if (count($array) <= 1) return  $array;    
   
          $key = $array [0];    
   
          $left_arr  = array();    
   
          $right_arr = array();    
   
          for ($i= 1; $i<count($array ); $i++){    
   
                  if ($array[ $i] <= $key)    
   
                          $left_arr [] = $array[$i];    
   
                  else   
   
                           $right_arr[] = $array[$i ];    
   
          }    
   
          $left_arr = quick_sort($left_arr );    
   
          $right_arr = quick_sort( $right_arr);    
   
          return array_merge($left_arr , array($key), $right_arr);    
   
  }    
   
     
   
  //------------------------    
   
  // PHP内置字符串函数实现    
   
  //------------------------    
   
  //字符串长度    
   
  function strlen ($str)    
   
  {    
   
          if ($str == '' ) return 0;    
   
          $count =  0;    
   
          while (1){    
   
                  if ( $str[$count] != NULL){    
   
                           $count++;    
   
                          continue;    
   
                  }else{    
   
                          break;    
   
                  }    
   
          }    
   
          return $count;    
   
  }    
   
  //截取子串    
   
  function substr($str, $start,  $length=NULL)    
   
  {    
   
          if ($str== '' || $start>strlen($str )) return;    
   
          if (($length!=NULL) && ( $start>0) && ($length> strlen($str)-$start)) return;    
   
          if (( $length!=NULL) && ($start< 0) && ($length>strlen($str )+$start)) return;    
   
          if ($length ==  NULL) $length = (strlen($str ) - $start);    
   
               
   
          if ($start <  0){    
   
                  for ($i=(strlen( $str)+$start); $i<(strlen ($str)+$start+$length ); $i++) {    
   
                          $substr .=  $str[$i];    
   
                  }    
   
          }    
   
          if ($length  > 0){    
   
                  for ($i= $start; $i<($start+$length ); $i++) {    
   
                          $substr  .= $str[$i];    
   
                  }    
   
          }    
   
          if ( $length < 0){    
   
                  for ($i =$start; $i<(strlen( $str)+$length); $i++) {    
   
                          $substr .= $str[$i ];    
   
                  }    
   
          }    
   
          return $substr;    
   
  }    
   
  //字符串翻转    
   
  function strrev($str)    
   
  {    
   
          if ($str == '') return 0 ;    
   
          for ($i=(strlen($str)- 1); $i>=0; $i --){    
   
                  $rev_str .= $str[$i ];    
   
          }    
   
          return $rev_str;    
   
  }    
   
     
   
  //字符串比较    
   
  function strcmp($s1,  $s2)    
   
  {    
   
          if (strlen($s1) <  strlen($s2)) return -1 ;    
   
          if (strlen($s1) > strlen( $s2)) return 1;    
   
          for ($i =0; $i<strlen($s1 ); $i++){    
   
                  if ($s1[ $i] == $s2[$i]){    
   
                          continue;    
   
                  }else{    
   
                          return false;    
   
                  }    
   
          }    
   
          return  0;    
   
  }    
   
     
   
  //查找字符串    
   
  function  strstr($str, $substr)    
   
  {    
   
           $m = strlen($str);    
   
          $n = strlen($substr );    
   
          if ($m < $n) return false ;    
   
          for ($i=0; $i <=($m-$n+1); $i ++){    
   
                  $sub = substr( $str, $i, $n);    
   
                  if ( strcmp($sub, $substr) ==  0)  return $i;    
   
          }    
   
          return false ;    
   
  }    
   
  //字符串替换    
   
  function str_replace($substr , $newsubstr, $str)    
   
  {    
   
           $m = strlen($str);    
   
          $n = strlen($substr );    
   
          $x = strlen($newsubstr );    
   
          if (strchr($str, $substr ) == false) return false;    
   
          for ( $i=0; $i<=($m- $n+1); $i++){    
   
                   $i = strchr($str,  $substr);    
   
                  $str = str_delete ($str, $i, $n);    
   
                  $str = str_insert($str,  $i, $newstr);    
   
          }    
   
          return $str ;    
   

(编辑:肇庆站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读