如何截取PHP中文字符串,保留长尾词疑问?
- 内容介绍
- 文章标签
- 相关推荐
本文共计215个文字,预计阅读时间需要1分钟。
java/** * 获取字符串的子串 * @param str 原始字符串 * @param start 开始位置 * @param length 截取长度 * @param ending 结束符 * @return 截取后的字符串 */private static String stringSubstr($str, $start=0, $length, $ending='') { // ...}
/** * 中文字符串截取 * @param $str * @param int $start @起始位置 * @param $length @截取长度 * @param string $ending @结尾符 * @return string */ private static function stringSubstr($str, $start=0, $length, $ending=''){ //$str = htmlspecialchars_decode($str); //实体字符转为html $str = trim(strip_tags($str)); //去除html字符 $str = preg_replace("/\\s| | /", "", $str); $mb_str = mb_substr($str, $start, $length, 'utf-8'); if($length < method::abslength($str)){ $output = $mb_str.$ending; }else{ $output = $mb_str; } return $output; } /** * 可以统计中文字符串长度的函数 * @param $str @要计算长度的字符串 * @return int @计算长度类型,0(默认)表示一个中文算一个字符,1表示一个中文算两个字符 */ private static function abslength($str){ if(empty($str)){ return 0; } if(function_exists('mb_strlen')){ return mb_strlen($str,'utf-8'); } else { preg_match_all("/./u", $str, $ar); return count($ar[0]); } }
本文共计215个文字,预计阅读时间需要1分钟。
java/** * 获取字符串的子串 * @param str 原始字符串 * @param start 开始位置 * @param length 截取长度 * @param ending 结束符 * @return 截取后的字符串 */private static String stringSubstr($str, $start=0, $length, $ending='') { // ...}
/** * 中文字符串截取 * @param $str * @param int $start @起始位置 * @param $length @截取长度 * @param string $ending @结尾符 * @return string */ private static function stringSubstr($str, $start=0, $length, $ending=''){ //$str = htmlspecialchars_decode($str); //实体字符转为html $str = trim(strip_tags($str)); //去除html字符 $str = preg_replace("/\\s| | /", "", $str); $mb_str = mb_substr($str, $start, $length, 'utf-8'); if($length < method::abslength($str)){ $output = $mb_str.$ending; }else{ $output = $mb_str; } return $output; } /** * 可以统计中文字符串长度的函数 * @param $str @要计算长度的字符串 * @return int @计算长度类型,0(默认)表示一个中文算一个字符,1表示一个中文算两个字符 */ private static function abslength($str){ if(empty($str)){ return 0; } if(function_exists('mb_strlen')){ return mb_strlen($str,'utf-8'); } else { preg_match_all("/./u", $str, $ar); return count($ar[0]); } }

