php截取多余字符用省略號代替
阿新 • • 發佈:2019-05-17
常用 小寫 highlight div 單個字符 sources returns cati 其他
項目中常用於在截取文章描述和標題的時候
在tp5中將函數方法寫在application/common.php
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; }
在HTML中直接調用函數
php截取多余字符用省略號代替