欧美成人精品,亚洲精品乱码久久久久久久久,国产成人自拍网站,www.av.,少妇毛片久久久久久久,亚洲日本伊人,一区精品国产欧美在线

云南網(wǎng)站建設(shè)創(chuàng)新企業(yè) 昆明多彩網(wǎng)絡(luò)公司

php截取字符(按字符數(shù)截取),GBK中文

來源:昆明網(wǎng)頁設(shè)計 日期:2010-07-07 閱讀: 發(fā)表評論

php帶有內(nèi)置的截取函數(shù),但是僅在英文和數(shù)字環(huán)境下有效,截取中文和英文數(shù)字組合的時候就會出現(xiàn)亂碼問題,本文是針對GBK中文的截取函數(shù)說明。


/**
 * strlen得到一個字符串的字節(jié)數(shù),filesize得到的是一個文件的字?jǐn)?shù)
 *
 * ---------------------------------------------------------------------
 * 僅針對gbk字符
 *
 * 用到的函數(shù):
 * ord() 函數(shù):返回字符串第一個字符的 ASCII 值
 * 提示:
 * gbk編碼原理
 * 第一個字節(jié)ASCII碼>129的,它與它之后的1個字節(jié)一起組成一個gbk字符,
 *第一個字節(jié)ASCII碼<=129的,一個字節(jié)組成一個gbk字符
 */
function cutStr($str, $length = '') { // $length為字符個數(shù),不是字節(jié)
 if ($length != '') { // 如果$length不為空
  $len = strlen($str); //得到字符長度
  $strOk = '';
  $i = 0; //字符長度
  $n = 0; //字符個數(shù)
  while ($i < $len && $n < $length) {
   $ascii = ord($str{$i}); //得到當(dāng)前字節(jié)的ASCII碼
   if ($ascii > 129) { // 大于129,是2個字節(jié)字符
    $strOk .= substr($str, $i, 2);
    $i += 2;
    $n++;
   } else { // 小于等于129,是1個字節(jié)字符
    $strOk .= substr($str, $i, 1);
    $i++;
    $n++;
   }
  }
 } else {
  $strOk = $str;
 }
 return $strOk;
}
// 示例
$text = file_get_contents('test.txt'); //截取的字符串
echo cutStr($text);

發(fā)表評論評論列表(有 條評論)

相關(guān)文章:
暫無相關(guān)文章
最熱文章:
新手怎么制作網(wǎng)頁? 閱讀:7660
jcarousellite中文文檔 閱讀:6507
表單元素input、按鈕、文字完美垂 閱讀:6247
怎么使chrome(谷歌google 閱讀:6145
phpMailer中文文檔手冊 閱讀:4639
鹰潭市| 新宁县| 通河县| 西丰县| 藁城市| 喀什市| 靖宇县| 襄城县| 遂川县| 察雅县| 嘉禾县| 宁强县| 金塔县| 肃北| 无锡市| 南丹县| 丁青县| 湖南省| 南部县| 万山特区| 迁安市| 大城县| 丰台区| 洪洞县| 定州市| 左云县| 株洲市| 板桥市| 康乐县| 犍为县| 十堰市| 长宁县| 黄石市| 临泽县| 光山县| 溧水县| 吉首市| 嘉荫县| 永宁县| 仙桃市| 浮山县|