| 
積分20912威望 金錢 貢獻 金幣 個銀行存款 天空積分 精華 
 等級: 19- 已有大成 經驗值: 0 / 186 魔法值: 6970 / 9778  生命值: 6%  | 
 
| 編輯「discuz_database.php」,路徑「/source/class/discuz/discuz_database.php」。增加程式碼,約358行後方
 [PHP] 純文本查看 復制代碼 public static function utf8mb4($m = ''){
        $m = preg_split('/(?<!^)(?!$)/u', $m);
        foreach ($m as $k => $z) {
                if(strlen($z)>3){
                        $z = unpack('H*', mb_convert_encoding($z,'UTF-32','UTF-8'));
                        $m[$k] = '&#x' . preg_replace('/^0*/','',$z[1]) . ';';
                }
        }
        return implode('',$m);
}
public static function mb4utf8($m = ''){
        if (is_string($m)){
                preg_match_all('/&#x([a-fA-F0-9]{4,5});/',$m,$p);
                foreach ($p[1] as $k => $h) {
                        $p[1][$k] = mb_convert_encoding( pack('H*', str_pad($h, 8, '0', STR_PAD_LEFT) ) ,'UTF-8','UTF-32');
                }
                return str_replace($p[0],$p[1],$m);
        }elseif(is_array($m)){
                foreach ($m as &$v) {
                        $v = self::mb4utf8($v);
                }
        }
        return $m;
}在刪除public static function fetch($resourceid, $type = MYSQL_ASSOC) {[PHP] 純文本查看 復制代碼 return self::$db->fetch_array($resourceid, $type);新增
 [PHP] 純文本查看 復制代碼 return self::mb4utf8(self::$db->fetch_array($resourceid, $type));於
 刪除public static function fetch_first($sql, $arg = array(), $silent = false) {[PHP] 純文本查看 復制代碼 $ret = self::$db->fetch_array($res);新增
 [PHP] 純文本查看 復制代碼 $ret = self::mb4utf8(self::$db->fetch_array($res));於
 刪除public static function fetch_all($sql, $arg = array(), $keyfield = '', $silent=false) {[PHP] 純文本查看 復制代碼 while ($row = self::$db->fetch_array($query)) {新增
 [PHP] 純文本查看 復制代碼 while ($row = self::mb4utf8(self::$db->fetch_array($query))) {於
 刪除public static function result($resourceid, $row = 0) {[PHP] 純文本查看 復制代碼 return self::$db->result($resourceid, $row);新增
 [PHP] 純文本查看 復制代碼 return self::mb4utf8(self::$db->result($resourceid, $row));於
 新增public static function quote($str, $noarray = false) {[PHP] 純文本查看 復制代碼 $str = self::utf8mb4($str);編輯「function_core.php」,路徑「/source/function/function_core.php」。於
 刪除function dhtmlspecialchars($string, $flags = null)[PHP] 純文本查看 復制代碼 $string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string);新增
 [PHP] 純文本查看 復制代碼 $string = preg_replace('/&((#(\d{3,6}|x[a-fA-F0-9]{4,5}));)/', '&\\1', $string);完成。
 
 | 
 |