這篇文章給大家分享的是有關(guān)php中字符串截取的方法是什么的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
目前創(chuàng)新互聯(lián)建站已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、漢臺(tái)網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
方法:1、用“substr(字符串,開始位置,截取長度)”語句;2、用“mb_substr(字符串,開始位置,截取長度,編碼)”語句;3、用“mb_strcut(字符串,開始位置,截取長度,編碼)”語句;4、用“$str[字符位置]”語句。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦
如果截取的字符串是多個(gè)字節(jié),就會(huì)出現(xiàn)亂碼,比如中文,適用于截取字母和數(shù)字
$str = 'hello'; echo substr($str,1,2);//輸出el
適用于截取中文,按字來切分
echo mb_substr('這個(gè)真的很nice',0,3,'utf-8'); //輸出這個(gè)真
按照字節(jié)來切分
echo mb_strcut('這個(gè)真的很nice',0,3,'utf-8'); //輸出這
將字符串看做字符集合,中文不適用哦!
$str = 'hello'; echo $str[0];//輸出h
有時(shí)字符串中含有中英文數(shù)字等,所以自定義一個(gè)不區(qū)分中英文的函數(shù)來切分字符串
/** * * 中英混合的字符串截取 * @param 待截取字符串 $sourcestr * @param 截取長度 $cutlength */ function sub_str($sourcestr, $cutlength) { $returnstr = '';//待返回字符串 $i = 0; $n = 0; $str_length = strlen ( $sourcestr ); //字符串的字節(jié)數(shù) while ( ($n < $cutlength) and ($i <= $str_length) ) { $temp_str = substr ( $sourcestr, $i, 1 ); $ascnum = Ord ( $temp_str ); //得到字符串中第$i位字符的ascii碼 if ($ascnum >= 224) {//如果ASCII位高與224, $returnstr = $returnstr . substr ( $sourcestr, $i, 3 ); //根據(jù)UTF-8編碼規(guī)范,將3個(gè)連續(xù)的字符計(jì)為單個(gè)字符 $i = $i + 3; //實(shí)際Byte計(jì)為3 $n ++; //字串長度計(jì)1 } elseif ($ascnum >= 192){ //如果ASCII位高與192, $returnstr = $returnstr . substr ( $sourcestr, $i, 2 ); //根據(jù)UTF-8編碼規(guī)范,將2個(gè)連續(xù)的字符計(jì)為單個(gè)字符 $i = $i + 2; //實(shí)際Byte計(jì)為2 $n ++; //字串長度計(jì)1 } elseif ($ascnum >= 65 && $ascnum <= 90) {//如果是大寫字母, $returnstr = $returnstr . substr ( $sourcestr, $i, 1 ); $i = $i + 1; //實(shí)際的Byte數(shù)仍計(jì)1個(gè) $n ++; //但考慮整體美觀,大寫字母計(jì)成一個(gè)高位字符 }elseif ($ascnum >= 97 && $ascnum <= 122) { $returnstr = $returnstr . substr ( $sourcestr, $i, 1 ); $i = $i + 1; //實(shí)際的Byte數(shù)仍計(jì)1個(gè) $n ++; //但考慮整體美觀,大寫字母計(jì)成一個(gè)高位字符 } else {//其他情況下,半角標(biāo)點(diǎn)符號(hào), $returnstr = $returnstr . substr ( $sourcestr, $i, 1 ); $i = $i + 1; $n = $n + 0.5; } } return $returnstr; }
感謝各位的閱讀!關(guān)于“php中字符串截取的方法是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!