本文實(shí)例分析了php字符串截取函數(shù)用法。分享給大家供大家參考。具體分析如下:

創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的金城江網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
php自帶的截取字符串的函數(shù)只能處理英文,數(shù)字的不能截取中文混排的,后面一個(gè)示例比較好用,第一個(gè)主要是給初學(xué)者學(xué)學(xué)用的,具體代碼如下:
復(fù)制代碼
代碼如下:?php
//構(gòu)造字符串
$str
=
"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
echo
"原字符串:b".$str."/bbr";
//按各種方式進(jìn)行截取
$str1
=
substr($str,5);
echo
"從第5個(gè)字符開(kāi)始取至最后:".$str1."br";
$str2
=
substr($str,9,4);
echo
"從第9個(gè)字符開(kāi)始取4個(gè)字符:".$str2."br";
$str3
=
substr($str,-5);
echo
"取倒數(shù)5個(gè)字符:".$str3."br";
$str4
=
substr($str,-8,4);
echo
"從倒數(shù)第8個(gè)字符開(kāi)始向后取4個(gè)字符:".$str4."br";
$str5
=
substr($str,-8,-2);
echo
"從倒數(shù)第8個(gè)字符開(kāi)始取到倒數(shù)第2個(gè)字符為止:".$str5."br";
?
支持中英文混合截取,代碼如下:
復(fù)制代碼
代碼如下:?php
/*
------------------------------------------------------
參數(shù):
$str_cut
需要截?cái)嗟淖址?/p>
$length
允許字符串顯示的最大長(zhǎng)度
程序功能:截取全角和半角(漢字和英文)混合的字符串以避免亂碼
------------------------------------------------------
*/
function
substr_cut($str_cut,$length)
{
if
(strlen($str_cut)
$length)
{
for($i=0;
$i
$length;
$i++)
if
(ord($str_cut[$i])
128)
$i++;
$str_cut
=
substr($str_cut,0,$i)."..";
}
return
$str_cut;
}
?
希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。
string substr(string $string ,int $start [, int $length ]),它可以用于在一個(gè)較長(zhǎng)的字符串中查找匹配的字符串或字符,$string為所要處理的字符串,$start為開(kāi)始選取的位置,$length為要選取的長(zhǎng)度.
$length 為正數(shù)據(jù)從左向右讀取字符.
$length 為負(fù)數(shù)時(shí)就右向左讀取字符.
string 必需,規(guī)定要返回其中一部分的字符串.
start 必需,規(guī)定在字符串的何處開(kāi)始.
charlist 可選,規(guī)定要返回的字符串長(zhǎng)度,默認(rèn)是直到字符串的結(jié)尾.
正數(shù) - 在字符串的指定位置開(kāi)始
負(fù)數(shù) - 在從字符串結(jié)尾的指定位置開(kāi)始
0 - 在字符串中的第一個(gè)字符處開(kāi)始
$rest_1 = substr("abcdef", 2); // returns "cdef"
$rest_2 = substr("abcdef", -2); // returns "ef"
$rest1 = substr("abcdef", 0, 0); // returns ""
$rest2 = substr("abcdef", 0, 2); // returns "ab"
$rest3 = substr("abcdef", 0, -1); // returns "abcde"
$rest4 = substr("abcdef", 2,0); // returns ""
$rest5 = substr("abcdef", 2,2); // returns "cd"
$rest6 = substr("abcdef", 2, -1); // returns "cde"
$rest7 = substr("abcdef", -2,0); // returns ""
$rest8 = substr("abcdef", -2,2); // returns "ef"
$rest9 = substr("abcdef", -2,-1); // returns "e"
語(yǔ)法???substr(string,開(kāi)始截取的位置,截取長(zhǎng)度);
示例
$string?=?'ABCDEFGH';
//分別下表是01234567
$string?=?substr($string,2,3);
echo?$string;//輸出CDE
缺點(diǎn)就是不能截取中文,截取中文有時(shí)候會(huì)亂碼
說(shuō)是最精確截取長(zhǎng)度,其實(shí)我也不敢確定是否是最精確的,具體有多精確看下面的效果就知道了:
先上測(cè)試用的字符串:
?php
header("Content-Type:text/html;charset=utf-8");
echo
cn_substr_utf8('我是一個(gè),和哈,哦也,,國(guó)家!',12);
echo
'br
/',cn_substr_utf8('ai\'2145m
a
ch3我[是一,個(gè),和哈,哦也,,國(guó)家!',12);
echo
'br
/',cn_substr_utf8('【我,是一,個(gè),和哈,哦也,,國(guó)家!',12);
echo
'br
/',cn_substr_utf8('我是一,個(gè),和哈,哦也,,國(guó)家!',12);
echo
'br
/',cn_substr_utf8('我是,一,個(gè),和哈,哦也,,國(guó)家!',12);
echo
'br
/',cn_substr_utf8('我,是,一,個(gè),和哈,哦也,,國(guó)家!',12);
echo
'br
/',cn_substr_utf8('我是asd一,個(gè),和哈,哦也,,國(guó)家!',12);
echo
'br
/',cn_substr_utf8('【我i\'m[是一,個(gè),和哈,哦也,,國(guó)家!',12);
echo
'br
/',cn_substr_utf8('【i\'m
a
ch我[是一,個(gè),和哈,哦也,,國(guó)家!',12);
echo
'br
/',cn_substr_utf8('【i\'2145m
a
ch3我[是一,個(gè),和哈,哦也,,國(guó)家!',12);
下面是精確截取字符串的效果圖:
具體函數(shù)代碼如下:
//utf-8中文截取,單字節(jié)截取模式
function
cn_substr_utf8($str,$length,$append='...',$start=0){
if(strlen($str)$start+1){
return
'';
}
preg_match_all("/./su",$str,$ar);
$str2='';
$tstr='';
//
for($i=0;isset($ar[0][$i]);$i++){
if(strlen($tstr)$start){
$tstr.=$ar[0][$i];
}else{
if(strlen($str2)$length
+
strlen($ar[0][$i])){
$str2.=$ar[0][$i];
}else{
break;
}
}
}
return
$str==$str2?$str2:$str2.$append;
}
如果大家認(rèn)為還不夠準(zhǔn)確大家可以在此基礎(chǔ)上進(jìn)行改進(jìn),或者是創(chuàng)新,希望這篇關(guān)于php截取字符串長(zhǎng)度函數(shù)的文章對(duì)大家的學(xué)習(xí)有所幫助。
函數(shù)名 作用 php版本
chr() 從指定的 ASCII 值返回字符。 3
chunk_split() 把字符串分割為一連串更小的部分。 3
count_chars() 返回字符串所用字符的信息。 4
explode() 把字符串打散為數(shù)組。 3
implode() 把數(shù)組元素組合為一個(gè)字符串。 3
join() implode() 的別名。 3
levenshtein() 返回兩個(gè)字符串之間的 Levenshtein 距離。 3
localeconv() 返回包含本地?cái)?shù)字及貨幣信息格式的數(shù)組。 4
ltrim() 從字符串左側(cè)刪除空格或其他預(yù)定義字符。 3
md5() 計(jì)算字符串的 MD5 散列。 3
md5_file() 計(jì)算文件的 MD5 散列。 4
metaphone() 計(jì)算字符串的 metaphone 鍵。 4
money_format() 把字符串格式化為貨幣字符串。 4
nl_langinfo() 返回指定的本地信息。 4
nl2br() 在字符串中的每個(gè)新行之前插入 HTML 換行符。 3
number_format() 通過(guò)千位分組來(lái)格式化數(shù)字。 3
parse_str() 把查詢字符串解析到變量中。 3
print() 輸出一個(gè)或多個(gè)字符串。 3
printf() 輸出格式化的字符串。 3
similar_text() 計(jì)算兩個(gè)字符串的匹配字符的數(shù)目。 3
sprintf() 把格式化的字符串寫(xiě)寫(xiě)入一個(gè)變量中。 3
str_ireplace() 替換字符串中的一些字符。(對(duì)大小寫(xiě)不敏感) 5
str_replace() 替換字符串中的一些字符。(對(duì)大小寫(xiě)敏感) 3
str_split() 把字符串分割到數(shù)組中。 5
strcasecmp() 比較兩個(gè)字符串。(對(duì)大小寫(xiě)不敏感) 3
strchr() 搜索字符串在另一字符串中的第一次出現(xiàn)。strstr() 的別名 3
strcspn() 返回在找到任何指定的字符之前,在字符串查找的字符數(shù)。 3
stripos() 返回字符串在另一字符串中第一次出現(xiàn)的位置(大小寫(xiě)不敏感) 5
stristr() 查找字符串在另一字符串中第一次出現(xiàn)的位置(大小寫(xiě)不敏感) 3
strlen() 返回字符串的長(zhǎng)度。 3
strpbrk() 在字符串中搜索指定字符中的任意一個(gè)。 5
strpos() 返回字符串在另一字符串中首次出現(xiàn)的位置(對(duì)大小寫(xiě)敏感) 3
strrchr() 查找字符串在另一個(gè)字符串中最后一次出現(xiàn)的位置。 3
strripos() 查找字符串在另一字符串中最后出現(xiàn)的位置(對(duì)大小寫(xiě)不敏感) 5
strrpos() 查找字符串在另一字符串中最后出現(xiàn)的位置(對(duì)大小寫(xiě)敏感) 3
strspn() 返回在字符串中包含的特定字符的數(shù)目。 3
strstr() 搜索字符串在另一字符串中的首次出現(xiàn)(對(duì)大小寫(xiě)敏感) 3
strtok() 把字符串分割為更小的字符串。 3
strtr() 轉(zhuǎn)換字符串中特定的字符。 3
substr() 返回字符串的一部分。 3
substr_compare() 從指定的開(kāi)始長(zhǎng)度比較兩個(gè)字符串。 5
substr_count() 計(jì)算子串在字符串中出現(xiàn)的次數(shù)。 4
substr_replace() 把字符串的一部分替換為另一個(gè)字符串。 4
ucwords() 把字符串中每個(gè)單詞的首字符轉(zhuǎn)換為大寫(xiě)。 3
wordwrap() 按照指定長(zhǎng)度對(duì)字符串進(jìn)行折行處理。 4
網(wǎng)站標(biāo)題:php數(shù)據(jù)函數(shù)截取,php數(shù)組截取
網(wǎng)站URL:http://chinadenli.net/article20/dsideco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、服務(wù)器托管、移動(dòng)網(wǎng)站建設(shè)、企業(yè)建站、品牌網(wǎng)站建設(shè)、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)