蔚藍的天空

 找回密碼
 立即註冊

管理團隊招募中 點此管理團隊申請

《蔚藍的天空總版規》 積分計算方程式

蔚藍的天空「魔力寶貝」 蔚藍的天空「幻想神域」

蔚藍幻境 - Facebook 蔚藍的天空 - Facebook

搜索
查看: 4486|回復: 0

[教學] Discuz 3.4 Emoji

[複製鏈接]

等級: 19- 已有大成

經驗值: 0 / 186

魔法值: 6964 / 8691

生命值: 6%

發表於 2019-1-17 20:34:55 | 顯示全部樓層 |閱讀模式
  • 編輯「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('&amp;', '&quot;', '&lt;', '&gt;'), $string);

    新增
    [PHP] 純文本查看 復制代碼
    $string = preg_replace('/&((#(\d{3,6}|x[a-fA-F0-9]{4,5}));)/', '&\\1', $string);
  • 完成。

◎請嚴格遵守《蔚藍的天空總版規》《Discuz!版規》,以免影響自身權益!
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

<
我的工具列

小黑屋|蔚藍的天空

GMT+8, 2024-3-29 04:10 , Processed in 0.044857 second(s), 18 queries .

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回復 返回頂部 返回列表