本篇文章給大家帶來的內容是關於thinkphp5中截取字串的兩種方法介紹(代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所協助。
在公用的common.php中
方法1
//字串截取function cut_str($sourcestr,$cutlength) { $returnstr=''; $i=0; $n=0; $str_length=strlen($sourcestr);//字串的位元組數 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); //根據UTF-8編碼規範,將3個連續的字元計為單個字元 $i=$i+3; //實際Byte計為3 $n++; //字串長度計1 } elseif ($ascnum>=192) //如果ASCII位高與192, { $returnstr=$returnstr.substr($sourcestr,$i,2); //根據UTF-8編碼規範,將2個連續的字元計為單個字元 $i=$i+2; //實際Byte計為2 $n++; //字串長度計1 } elseif ($ascnum>=65 && $ascnum<=90) //如果是大寫字母, { $returnstr=$returnstr.substr($sourcestr,$i,1); $i=$i+1; //實際的Byte數仍計1個 $n++; //但考慮整體美觀,大寫字母計成一個高位字元 } else //其他情況下,包括小寫字母和半形標點符號, { $returnstr=$returnstr.substr($sourcestr,$i,1); $i=$i+1; //實際的Byte數計1個 $n=$n+0.5; //小寫字母和半形標點等與半個高位字元寬... } } if ($str_length>$i){ $returnstr = $returnstr . "...";//超過長度時在尾處加上省略符號 } return $returnstr; }
方法2:
//字串截取並且超出顯示省略符號function subtext($text, $length){if(mb_strlen($text, ‘utf8’) > $length)return mb_substr($text,0,$length,’utf8′).’ …’;return $text;}
在模版中調用則:
{$tops.title | subtext=18}