91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • php自定義中文字符串截取函數substr_for_gb2312及substr_for_utf8怎么用

php自定義中文字符串截取函數substr_for_gb2312及substr_for_utf8怎么用

發布時間:2021-09-02 10:26:05 來源:億速云 閱讀:169 作者:小新 欄目:開發技術

這篇文章主要介紹了php自定義中文字符串截取函數substr_for_gb2312及substr_for_utf8怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

具體如下:

/*
*gb2312中文字符串截取
 */
function substr_for_gb2312($str,$start,$len=null)
 {
  $totlelength = strlen($str);
  //特例情況
  if ($len == null) $len = $totlelength;
  if ($len ==0) return "";
  if ($len >= $totlelength && $start == 0 ) return $str;
  if ($start > $totlelength) return "";
  //分析$start
  if ($start < 0 ) //$start<0時,轉化為$start>0時的定位.
  {
  if ( abs($start) >= $totlelength ) $start = 0;
  else $start = $totlelength - abs($start);
  }
  //確定起始位置,當起始位拆分某漢字時,返回值包含此漢字.
  if ($start > 0)
  {
  $i = $start-1;
  $flag = -1;
  while ($i >= 0)
  {
  if ( ord(substr($str,$i,1)) > 160)
  {
  $flag = -1*$flag;
  }
  else break;
  $i--;
  }
  if($flag==1)
  {
  $start = $start - 1;
  $len++;    //保證不位移.
  }
 }
 $str = substr($str,$start);//截除字符串$str的$start位前的字符
 $totlelength = strlen($str);
 //確定結束位置,當結束位拆分某漢字時,返回值不包含此漢字.
 if ($len<0) $len = $totlelength - abs($len);
 if ($len <= 0) return "";
 $i=min($len,$totlelength);
 $i--;
 $flag = -1;
 while ($i >= 0)
 {
  if (ord(substr($str,$i,1))>160)
  {
   $flag=-1*$flag;
  }
  else break;
  $i--;
 }
 if($flag == 1)
  $len=$len-1;
 $subit=substr($str,0,$len);
 return $subit;
 }
/******************************************************************
* PHP截取UTF-8字符串,解決半字符問題。
* 英文、數字(半角)為1字節(8位),中文(全角)為3字節
* @return 取出的字符串, 當$len小于等于0時, 會返回整個字符串
* @param $str 源字符串
* $len 左邊的子串的長度
****************************************************************/
function substr_for_utf($str,$len)
{
for($i=0;$i<$len;$i++)
{
$temp_str=substr($str,0,1);
if(ord($temp_str) > 127)
{
$i++;
if($i<$len)
{
$new_str[]=substr($str,0,3);
$str=substr($str,3);
}
}
else
{
$new_str[]=substr($str,0,1);
$str=substr($str,1);
}
}
return join($new_str);
}
?>
/*帶start位置的utf8截取函數*/
function utf8_substr($string, $start, $length) {
  preg_match_all ('/[/x00-/x7F]|[/xC2-/xDF][/x80-/xBF]|[/xE0-/xEF][/x80-/xBF][/x80-/xBF]|[/xF0-/xF4][/x80-/xBF][/x80-/xBF][/x80-/x
BF]/', $string, $rs);
  $out = '';
  $size = count ($rs[0]);
  $end = $start + $length;
  if ($end > $size ) {
    $end = $size;
  }
  for ($i = $start; $i < $end; $i++) {
    $out .= $rs[0][$i];
  }
  return $out;
}

感謝你能夠認真閱讀完這篇文章,希望小編分享的“php自定義中文字符串截取函數substr_for_gb2312及substr_for_utf8怎么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

柳州市| 克东县| 嘉荫县| 翁源县| 晴隆县| 蓬安县| 阜宁县| 故城县| 长泰县| 和平区| 新晃| 邓州市| 如皋市| 房山区| 清新县| 曲松县| 赣州市| 武清区| 乌兰浩特市| 浦北县| 府谷县| 上高县| 大宁县| 贺州市| 资阳市| 织金县| 二手房| 平谷区| 海原县| 钟山县| 辽宁省| 新乐市| 岑溪市| 浮梁县| 漳平市| 元朗区| 宁强县| 庐江县| 大城县| 加查县| 富阳市|