国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP截取中文字符串函數總結

2024-09-04 11:49:10
字體:
來源:轉載
供稿:網友

在網上看到有很多關于截取中文字符串的一些函數,在此本文章就為各位整理一下這些常用的截取中文字符串的例子吧,希望例子能幫助到大家哦.

常用的php函數:

  1. strstr(string,string)            //從前面第一次出現某個字符串的地方截取到最后 
  2. strrchr(string,string)         //從某個字符串從最后出現的位置截取到結尾 
  3. strpos(string,string[,int])  //某個字符串第一次出現的位置 
  4. strrpos(string,string)      //某個字符串最后一次出現的位置 
  5. substr(string,int[,int])    //從指定位置開始截取字符串,可以指定截取的長度。 
  6. strlen(string)               //獲取字符串的長度PHP截取開始和結束標記間的字符 

方法一:利用explode對字符串進行分,代碼如下:

  1. /** 
  2. * Get the content between $start and $end 
  3. * 
  4. * @param string $content 原始字符 
  5. * @param string $start     起始字符 
  6. * @param string $end      結束字符 
  7. * @return string 
  8. */ 
  9. function GetStringBetween($content,$start,$end){ 
  10.     $r = explode($start$content); 
  11.     if (isset($r[1])){ 
  12.         $r = explode($end$r[1]); 
  13.         return $r[0]; 
  14.     } 
  15.     return ''

方法二:利用substr截取字符,由于php組件函數,因此字符串處理效率比explode方法要高一些,代碼如下:

  1. /** 
  2. * Get the content between $start and $end 
  3. * 
  4. * @param string $content 原始字符 
  5. * @param string $start     起始字符 
  6. * @param string $end      結束字符 
  7. * @return string 
  8. */ 
  9. function get_string_between($string$start$end){ 
  10.     $string = " ".$string//開源軟件:Vevb.com 
  11.     $ini = strpos($string,$start); 
  12.     if ($ini == 0) return ""
  13.     $ini += strlen($start); 
  14.     $len = strpos($string,$end,$ini) - $ini
  15.     return substr($string,$ini,$len); 

PHP截取所有符合起始與結束標記的字符串,代碼如下:

  1. /** 
  2. * Get all every strings between two tags 
  3. * 
  4. * @param string $string 原始字符串 
  5. * @param string $start  起始字符串 
  6. * @param string $end   結束字符串 
  7. * @return array 
  8. */ 
  9. function get_all_strings_between($string,$start,$end
  10.     //Returns an array of all values which are between two tags in a set of data 
  11.     $strings = array(); 
  12.     $startPos = 0; 
  13.     $i = 0; 
  14.     //echo strlen($string)."n"; 
  15.     while($startPos < strlen($string) && $matched = get_string_between(substr($string,$startPos),$start,$end)) 
  16.     { 
  17.         if ($matched == null || $matched[1] == null || $matched[1] == ''break
  18.         $startPos = $matched[0]+$startPos+1; 
  19.         array_push($strings,$matched[1]); 
  20.         $i++; 
  21.     } 
  22.     return $strings
  23. function get_string_between($string$start$end){ 
  24.     $ini = strpos($string,$start); 
  25.     if ($ini == 0) return null; 
  26.     $ini += strlen($start); 
  27.     $len = strpos($string,$end,$ini) - $ini
  28.     return array($ini+$len,substr($string,$ini,$len)); 

php截取起始與結束標記間字符,帶截取次數,是否允許重復選項,代碼如下:

  1. /** 
  2. * Get all every strings between two tags 
  3. * 
  4. * @param string $string 原始字符串 
  5. * @param string $start  起始字符串 
  6. * @param string $end   結束字符串 
  7. * @return array 
  8. */ 
  9. function get_all_strings_between($string,$start,$end
  10.     //Returns an array of all values which are between two tags in a set of data 
  11.     $strings = array(); 
  12.     $startPos = 0; 
  13.     $i = 0; 
  14.     //echo strlen($string)."n"; 
  15.     while($startPos < strlen($string) && $matched = get_string_between(substr($string,$startPos),$start,$end)) 
  16.     { 
  17.         if ($matched == null || $matched[1] == null || $matched[1] == ''break
  18.         $startPos = $matched[0]+$startPos+1; 
  19.         array_push($strings,$matched[1]); 
  20.         $i++; 
  21.     } 
  22.     return $strings
  23. function get_string_between($string$start$end){ 
  24.     $ini = strpos($string,$start); 
  25.     if ($ini == 0) return null; 
  26.     $ini += strlen($start); 
  27.     $len = strpos($string,$end,$ini) - $ini
  28.     return array($ini+$len,substr($string,$ini,$len)); 

截取GB2312中文字符串,代碼如下:

  1. <?php 
  2. //截取中文字符串 
  3. function mysubstr($str$start$len) { 
  4. $tmpstr = ""
  5. $strlen = $start + $len
  6. for($i = 0; $i < $strlen$i++) { 
  7. if(ord(substr($str$i, 1)) > 0xa0) { 
  8. $tmpstr .= substr($str$i, 2); 
  9. $i++; 
  10. else 
  11. $tmpstr .= substr($str$i, 1); 
  12. return $tmpstr
  13. ?> 

截取utf8編碼的多字節字符串,代碼如下:

  1. <?php 
  2. //截取utf8字符串 
  3. function utf8Substr($str$from$len
  4. return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'
  5. '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s'
  6. '$1',$str); 
  7. ?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 塔河县| 齐河县| 田林县| 佳木斯市| 德兴市| 金华市| 鹰潭市| 原阳县| 乃东县| 姜堰市| 大邑县| 尉犁县| 昆明市| 社旗县| 铁力市| 射阳县| 平阴县| 昌黎县| 涞源县| 乃东县| 长宁区| 汉中市| 漠河县| 重庆市| 莱西市| 郑州市| 喀喇| 嵊泗县| 临武县| 枣阳市| 彭州市| 鹤庆县| 邵阳市| 新郑市| 轮台县| 宣城市| 高青县| 靖江市| 珲春市| 泸溪县| 荣昌县|