根據中文裁減字串函數的php代碼

來源:互聯網
上載者:User
裁減字串函數有很多,但是根據中文裁減字串的卻很少,在本文將為大家介紹下使用php是如何?的,感興趣的朋友不要錯過代碼如下:define(CHARSET, 'UTF-8'); // 系統預設編碼  /** * 根據中文裁減字串 * @param $string - 字串 * @param $length - 長度 * @param $doc - 縮減尾碼 * @return 返回帶省略符號被裁減好的字串 */ function cutstr( $string, $length, $dot = '...' ) { if ( strlen( $string ) <= $length ) { return $string; } $pre = chr( 1 ); $end = chr( 1 ); $string = str_replace( array( '&', '"', '<', '>' ), array( $pre . '&' . $end, $pre . '"' . $end, $pre . '<' . $end, $pre . '>' . $end ), $string ); $strcut = ''; if ( strtolower( CHARSET ) == 'utf-8' ) { $n = $tn = $noc = 0; while ( $n < strlen( $string ) ) { $t = ord( $string[$n] ); if ( $t == 9 || $t == 10 || (32 <= $t && $t <= 126) ) { $tn = 1; $n++; $noc++; } elseif ( 194 <= $t && $t <= 223 ) { $tn = 2; $n += 2; $noc += 2; } elseif ( 224 <= $t && $t <= 239 ) { $tn = 3; $n += 3; $noc += 2; } elseif ( 240 <= $t && $t <= 247 ) { $tn = 4; $n += 4; $noc += 2; } elseif ( 248 <= $t && $t <= 251 ) { $tn = 5; $n += 5; $noc += 2; } elseif ( $t == 252 || $t == 253 ) { $tn = 6; $n += 6; $noc += 2; } else { $n++; } if ( $noc >= $length ) { break; } } if ( $noc > $length ) { $n -= $tn; } $strcut = substr( $string, 0, $n ); } else { for ( $i = 0; $i < $length; $i++ ) { $strcut .= ord( $string[$i] ) > 127 ? $string[$i] . $string[++$i] : $string[$i]; } } $strcut = str_replace( array( $pre . '&' . $end, $pre . '"' . $end, $pre . '<' . $end, $pre . '>' . $end ), array( '&', '"', '<', '>' ), $strcut ); $pos = strrpos( $strcut, chr( 1 ) ); if ( $pos !== false ) { $strcut = substr( $strcut, 0, $pos ); } return $strcut . $dot; } 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.