亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

關于PHP截取字符串的一些方法總結

2020-03-22 19:51:17
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了關于PHP截取字符串的一些方法總結,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

現在很多情況下,需要用到截取字符串功能,不夠由于gb2312與utf-8的編碼問題,需要區別對待,下面是具體的實現方法并從一些比較成熟的系統中扒下的代碼。

1、UTF-8、GB2312都支持的漢字截取函數

 ?php Utf-8、gb2312都支持的漢字截取函數 cut_str(字符串, 截取長度, 開始長度, 編碼); 編碼默認為 utf-8 開始長度默認為 0 function cut_str($string, $sublen, $start = 0, $code = UTF-8 ) if($code == UTF-8 ) $pa = /[/x01-/x7f]|[/xc2-/xdf][/x80-/xbf]|/xe0[/xa0-/xbf][/x80-/xbf]|[/xe1-/xef][/x80-/xbf][/x80-/xbf]|/xf0[/x90-/xbf][/x80-/xbf][/x80-/xbf]|[/xf1-/xf7][/x80-/xbf][/x80-/xbf][/x80-/xbf]/ preg_match_all($pa, $string, $t_string); if(count($t_string[0]) - $start $sublen) return join( , array_slice($t_string[0], $start, $sublen)). … return join( , array_slice($t_string[0], $start, $sublen)); else $start = $start*2; $sublen = $sublen*2; $strlen = strlen($string); $tmpstr = for($i=0; $i $strlen; $i++) if($i =$start $i ($start+$sublen)) if(ord(substr($string, $i, 1)) 129) $tmpstr.= substr($string, $i, 2); else $tmpstr.= substr($string, $i, 1); if(ord(substr($string, $i, 1)) 129) $i++; if(strlen($tmpstr) $strlen ) $tmpstr.= … return $tmpstr; $str = abcd需要截取的字符串 echo cut_str($str, 8, 0, gb2312 ? 

2、截取utf8編碼的多字節字符串

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

3、截取GB2312中文字符串

 ?php //截取中文字符串 function mysubstr($str, $start, $len) { $tmpstr = $strlen = $start + $len; for($i = 0; $i $strlen; $i++) { if(ord(substr($str, $i, 1)) 0xa0) { $tmpstr .= substr($str, $i, 2); $i++; } else $tmpstr .= substr($str, $i, 1); return $tmpstr; ? 

4、BugFree 的字符截取函數

 ?php * @package BugFree * @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $ * Return part of a string(Enhance the function substr()) * @param string $String the string to cut. * @param int $Length the length of returned string. * @param booble $Append whether append … : false|true * @return string the cutted string. function sysSubStr($String,$Length,$Append = false) if (strlen($String) = $Length ) return $String; else $I = 0; while ($I $Length) $StringTMP = substr($String,$I,1); if ( ord($StringTMP) =224 ) $StringTMP = substr($String,$I,3); $I = $I + 3; elseif( ord($StringTMP) =192 ) $StringTMP = substr($String,$I,2); $I = $I + 2; else $I = $I + 1; $StringLast[] = $StringTMP; $StringLast = implode( ,$StringLast); if($Append) $StringLast .= … return $StringLast; $String = //www.jb51.net — 簡單、精彩、通用 $Length = 18 $Append = false; echo sysSubStr($String,$Length,$Append); ? 

dedecms中的截取代碼
這是從dedecms直接拿的代碼,大家可以稍作修改即可。

//中文截取2,單字節截取模式 //如果是request的內容,必須使用這個函數 function cn_substrR($str,$slen,$startdd=0) $str = cn_substr(stripslashes($str),$slen,$startdd); return addslashes($str); //中文截取2,單字節截取模式 function cn_substr($str,$slen,$startdd=0) global $cfg_soft_lang; if($cfg_soft_lang== utf-8 ) return cn_substr_utf8($str,$slen,$startdd); $restr = $c = $str_len = strlen($str); if($str_len $startdd+1) return if($str_len $startdd + $slen || $slen==0) $slen = $str_len - $startdd; $enddd = $startdd + $slen - 1; for($i=0;$i $str_len;$i++) if($startdd==0) $restr .= $c; else if($i $startdd) $restr .= $c; if(ord($str[$i]) 0x80) if($str_len $i+1) $c = $str[$i].$str[$i+1]; $i++; else $c = $str[$i]; if($i = $enddd) if(strlen($restr)+strlen($c) $slen) break; else $restr .= $c; break; return $restr; //utf-8中文截取,單字節截取模式 function cn_substr_utf8($str, $length, $start=0) if(strlen($str) $start+1) return preg_match_all( /./su , $str, $ar); $str = $tstr = //為了兼容mysql4.1以下版本,與數據庫varchar一致,這里使用按字節截取 for($i=0; isset($ar[0][$i]); $i++) if(strlen($tstr) $start) $tstr .= $ar[0][$i]; else if(strlen($str) $length + strlen($ar[0][$i]) ) $str .= $ar[0][$i]; else break; return $str; }

phpcms中的字符串截取代碼:

function str_cut($string, $length, $dot = ... ) $strlen = strlen($string); if($strlen = $length) return $string; $string = str_replace(array( , , , , “ , ” , — , , , · , … ), array( , , , , “ , ” , — , , , · , … ), $string); $strcut = if(strtolower(CHARSET) == utf-8 ) $n = $tn = $noc = 0; while($n $strlen) $t = ord($string[$n]); if($t == 9 || $t == 10 || (32 = $t $t = 126)) { $tn = 1; $n++; $noc++; } elseif(194 = $t $t = 223) { $tn = 2; $n += 2; $noc += 2; } elseif(224 = $t $t 239) { $tn = 3; $n += 3; $noc += 2; } elseif(240 = $t $t = 247) { $tn = 4; $n += 4; $noc += 2; } elseif(248 = $t $t = 251) { $tn = 5; $n += 5; $noc += 2; } elseif($t == 252 || $t == 253) { $tn = 6; $n += 6; $noc += 2; } else { $n++; if($noc = $length) break; if($noc $length) $n -= $tn; $strcut = substr($string, 0, $n); else $dotlen = strlen($dot); $maxi = $length - $dotlen - 1; for($i = 0; $i $maxi; $i++) $strcut .= ord($string[$i]) 127 ? $string[$i].$string[++$i] : $string[$i]; $strcut = str_replace(array( , , , , ), array( , , , , ), $strcut); return $strcut.$dot; }

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !

相關推薦:

關于PHP求多項式導數的函數代碼

關于PHP操作文件的基本函數的使用

以上就是關于PHP截取字符串的一些方法總結的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久国产精品久久久久| 国产精品中文久久久久久久| 黄色一区二区在线| 中文字幕日韩精品有码视频| 欧美精品久久久久a| 国产精品久久久久91| 久久久久久久国产精品视频| 亚洲a级在线播放观看| 狠狠躁夜夜躁人人爽天天天天97| 午夜精品蜜臀一区二区三区免费| 欧美激情视频免费观看| 国产成人综合一区二区三区| 欧美日韩在线影院| 欧美国产一区二区三区| 欧美体内谢she精2性欧美| 成人精品视频99在线观看免费| 美日韩精品免费观看视频| 久久久这里只有精品视频| 91在线国产电影| 色婷婷av一区二区三区在线观看| 美女国内精品自产拍在线播放| 另类少妇人与禽zozz0性伦| 成人亲热视频网站| 精品偷拍各种wc美女嘘嘘| 中文字幕最新精品| 国产福利精品av综合导导航| 伊人成人开心激情综合网| 欧美日韩综合视频| 国产亚洲精品激情久久| 亚洲欧美中文字幕| 久久久久久久97| 视频在线观看99| 日韩中文字幕在线看| 在线亚洲午夜片av大片| 96国产粉嫩美女| 久久久久久久久久久国产| 国内精品视频在线| 一区二区三区国产在线观看| 欧美精品久久久久久久| 国产免费一区视频观看免费| 91精品视频免费看| 久久精品中文字幕| 91九色国产视频| 欧美在线免费视频| 狠狠色狠狠色综合日日小说| 欧美极品少妇全裸体| 日韩在线视频观看正片免费网站| 亚洲最大福利网站| 国产不卡精品视男人的天堂| 久久成人亚洲精品| 精品视频偷偷看在线观看| 2019中文字幕在线观看| 国内精品久久久久久| 亚洲欧美日韩一区在线| 久久影视电视剧凤归四时歌| 国产91在线播放九色快色| 日韩在线观看免费全集电视剧网站| 国产精品综合久久久| 亚洲欧洲在线播放| 亚洲毛片一区二区| 久久成人国产精品| 成人欧美在线观看| 欧美性猛交视频| 一本色道久久88综合日韩精品| 国产精选久久久久久| 欧美日韩一区免费| 亚洲永久在线观看| 国产精品小说在线| 91网站免费看| 亚洲最大福利视频网| 欧美尺度大的性做爰视频| 97成人在线视频| 国语自产精品视频在线看| 91在线观看免费高清| 亚洲色图13p| 91精品在线播放| 日韩欧美亚洲综合| 国产日韩欧美黄色| 91精品国产网站| 国产欧美精品在线播放| 九九精品视频在线| 97在线视频免费看| 日韩中文字幕国产精品| 亚洲精品国产精品乱码不99按摩| 66m—66摸成人免费视频| 久久久久久久久久久久av| 精品成人在线视频| 久久国产精品久久精品| 中文字幕日韩av| 少妇高潮久久久久久潘金莲| 国产精品视频自在线| 国产精品狼人色视频一区| 日韩毛片在线观看| 欧美精品国产精品日韩精品| 日韩美女在线看| 91在线观看免费| 欧美性猛交xxxx免费看| 色偷偷噜噜噜亚洲男人| 91久久综合亚洲鲁鲁五月天| 欧美理论电影在线播放| 亚洲情综合五月天| 国产成人午夜视频网址| 久久精品中文字幕电影| 91豆花精品一区| 欧美日韩国产第一页| 久久精品夜夜夜夜夜久久| 91免费在线视频网站| 国产精品高潮呻吟久久av无限| 国产精品久久久久久久久粉嫩av| 国产精品成人观看视频国产奇米| 国产不卡av在线免费观看| 亚洲国产高清福利视频| yellow中文字幕久久| 精品久久久久久亚洲精品| 欧美高清不卡在线| 亚洲性猛交xxxxwww| 亚洲第一精品夜夜躁人人爽| 国产欧美日韩亚洲精品| 国产精品扒开腿做| 久久免费福利视频| 国产做受高潮69| 亚洲精品v天堂中文字幕| 欧美激情视频一区二区三区不卡| 69久久夜色精品国产69| 98精品在线视频| 亚洲午夜精品久久久久久性色| 国产精品 欧美在线| 久久人人爽亚洲精品天堂| 91sao在线观看国产| 欧美第一黄网免费网站| 欧美国产第二页| 精品久久久久久久久久久久久久| 亚洲视频一区二区三区| 亚洲第一精品夜夜躁人人躁| 日韩中文视频免费在线观看| 久久久久久久久电影| 欧美另类极品videosbest最新版本| 91精品久久久久久久| 亚洲福利在线视频| www欧美日韩| 永久免费毛片在线播放不卡| 亚洲成人av片在线观看| 性色av一区二区咪爱| 亚洲精品一区中文字幕乱码| 91精品国产综合久久香蕉最新版| 综合国产在线观看| 中文字幕不卡在线视频极品| 亚洲国产精品久久精品怡红院| 欧美性感美女h网站在线观看免费| 欧美午夜精品在线| 亚洲天堂开心观看| 91亚洲国产成人久久精品网站| 国产精品偷伦一区二区| 中文字幕亚洲激情| 精品久久久久人成| 国产狼人综合免费视频| 国内精品400部情侣激情| 亚洲欧美精品suv| 久久久久久久一区二区| 亚洲精品久久久久国产| 国产日韩在线观看av| 成人女保姆的销魂服务| 亚洲第一精品夜夜躁人人爽| 欧美大全免费观看电视剧大泉洋|