zms198983 发表于 2013-2-7 00:54:28

php字符串截长(支持中文)

<?php    /**   * 字符串截长(支持中文)   * @author:zms   * @version:2011-7-27   */      /**       * 字符串截取       * @param object $str : 字符串(支持中文)       * @param object $start :截取开始位置       * @param object $length:截取结束位置       * @param object $encode :字符串编码       * @param object $input_encode :输入的文字的编码       * @return       */      function substring($str, $start, $length, $encode = 'utf-8', $input_encode = 'utf-8') {         //编码转换         $str = iconv($input_encode, $encode, $str);         //正则匹配         preg_match_all(getRege($encode), $str, $match);         //从数组取得数据,组成字符串         $slice = join("", array_slice($match, $start, $length));         return $slice;       }       /**       * 中文编码       * @param object $type       * @return       */      function getRege($type) {         $rege = "";         switch (strtolower($type)) {               case 'utf-8':                   $rege = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";                   break;               case 'gb2312':                   $rege = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";                   break;               case 'gbk':                   $rege = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";                   break;               case "big5":                   $rege = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";                   break;               default:                   echo "charset error";                   exit;         }         return $rege;       }   ?> 
页: [1]
查看完整版本: php字符串截长(支持中文)