首页 > 代码库 > php 截取字符串
php 截取字符串
1 /** 2 * 方法库-截取字符串-【该函数作者未知】 3 * @param string $string 字符串 4 * @param int $length 字符长度 5 * @param string $dot 截取后是否添加... 6 * @param string $charset编码 7 * @return string 8 */ 9 public function cutstr($string, $length, $dot = ‘ ...‘, $charset = ‘utf-8‘) {10 if (strlen($string) <= $length) {11 return $string;12 }13 $string = str_replace(array(‘&‘, ‘"‘, ‘<‘, ‘>‘), array(‘&‘, ‘"‘, ‘<‘, ‘>‘), $string);14 $strcut = ‘‘;15 if (strtolower($charset) == ‘utf-8‘) {16 $n = $tn = $noc = 0;17 while ($n < strlen($string)) {18 $t = ord($string[$n]); //ASCII?19 if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {20 $tn = 1; $n++; $noc++;21 } elseif (194 <= $t && $t <= 223) {22 $tn = 2; $n += 2; $noc += 2;23 } elseif (224 <= $t && $t < 239) {24 $tn = 3; $n += 3; $noc += 2;25 } elseif (240 <= $t && $t <= 247) {26 $tn = 4; $n += 4; $noc += 2;27 } elseif (248 <= $t && $t <= 251) {28 $tn = 5; $n += 5; $noc += 2;29 } elseif ($t == 252 || $t == 253) {30 $tn = 6; $n += 6; $noc += 2;31 } else {32 $n++;33 }34 if($noc >= $length) {35 break;36 }37 }38 if ($noc > $length) {39 $n -= $tn;40 }41 $strcut = substr($string, 0, $n);42 } else {43 for ($i = 0; $i < $length; $i++) {44 $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];45 }46 }47 $strcut = str_replace(array(‘&‘, ‘"‘, ‘<‘, ‘>‘), array(‘&‘, ‘"‘, ‘<‘, ‘>‘), $strcut);48 return $strcut.$dot;49 }
php 截取字符串
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。