程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php 中文字符串截取函數

php 中文字符串截取函數

編輯:關於PHP編程

下面這二款函數是二款雙字節字符串截取函數,那就是針對中文字符串截取了,好了第一款漢字中文截取函數是越級簡潔了,後一款復雜但考慮更多一些。

<?
//php教程 中文字符串截取函數
/*
下面這二款函數是二款雙字節字符串截取函數,那就是針對中文字符串截取了,好了第一款漢字中文截取函數是越級簡潔了,後一款復雜但考慮更多一些。
*/

function substr($str = '', $offset = 0, $len = 0){
    $len || ($len = strlen($str));
    preg_match_all('/./us', $str, $result);
    return implode('', array_slice($result[0], $offset, $len));
}

//方法二

if (!function_exists('mb_substr')) {
function mb_substr($str, $start, $len = '', $encoding="utf-8"){
  $limit = strlen($str);

  for ($s = 0; $start > 0;--$start) {// found the real start
    if ($s >= $limit)
      break;

    if ($str[$s] <= "x7f")
      ++$s;
    else {
      ++$s; // skip length

      while ($str[$s] >= "x80" && $str[$s] <= "xbf")
        ++$s;
    }
  }

  if ($len == '')
    return substr($str, $s);
  else
    for ($e = $s; $len > 0; --$len) {//found the real end
      if ($e >= $limit)
        break;

      if ($str[$e] <= "x7f")
        ++$e;
      else {
        ++$e;//skip length

        while ($str[$e] >= "x80" && $str[$e] <= "xbf" && $e < $limit)
          ++$e;
      }
    }

  return substr($str, $s, $e - $s);
}
}

?>


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved