- 浏览: 2035215 次
- 来自: 武汉
文章分类
- 全部博客 (415)
- UI设计 (19)
- PHP (26)
- PHP工具类 (23)
- 二次开发 (53)
- phpMVC (28)
- javascript (50)
- JS 组件 (20)
- MYSQL (37)
- 其他 (16)
- xml/flash/flex (6)
- 版本控制 (7)
- 开源 (4)
- bug解决 (5)
- Linux (15)
- NoSQL (14)
- 软件设计 (21)
- C/PHP内核 (5)
- 安全性 (8)
- 面试 (18)
- 设计模式 (4)
- 重构 (6)
- 开发配置 (11)
- SQL SERVER (12)
- 采集 (3)
- SEO (2)
- 维护 (15)
- UML (5)
- 硬件标准 (1)
- 架构 (8)
- JAVA (1)
最新评论
-
carry0987:
求大神分離下X3的模板...不然對於PHP7不友好啊...
分离自Discuz模板类和语法 -
青木得海角:
你好,里面的 Crypt/TripleDES.php 和 Cr ...
POS机算法 -
zohog:
楼主,Mac.php中里面的 Crypt/TripleDES. ...
POS机算法 -
zohog:
楼主,Mac.php中里面的 Crypt/TripleDES. ...
POS机算法 -
q59200182:
能不能给个完整的demo 新手上路不会 求带
AngularJs 指令directive之controller,link,compile
PHP自带的iconv和mbstring库都可以完成这项工作,但一般的虚拟主机很少支持
其中的全局变量在include/common.inc.php
库文件在include/data下
<?php if(!defined('DEDEINC')) exit('dedecms'); /** * DedeCMS中用到的字符编码转换的小助手函数 * * @version $Id: charset.helper.php 1 2010-07-05 11:43:09Z tianya $ * @package DedeCMS.Helpers * @copyright Copyright (c) 2007 - 2010, DesDev, Inc. * @license http://help.dedecms.com/usersguide/license.html * @link http://www.dedecms.com */ $UC2GBTABLE = $CODETABLE = $BIG5_DATA = $GB_DATA = ''; $GbkUniDic = null; /** * UTF-8 转GB编码 * * @access public * @param string $utfstr 需要转换的字符串 * @return string */ if ( ! function_exists('utf82gb')) { function utf82gb($utfstr) { if(function_exists('iconv')) { return iconv('utf-8','gbk//ignore',$utfstr); } global $UC2GBTABLE; $okstr = ""; if(trim($utfstr)=="") { return $utfstr; } if(empty($UC2GBTABLE)) { $filename = DEDEINC."/data/gb2312-utf8.dat"; $fp = fopen($filename,"r"); while($l = fgets($fp,15)) { $UC2GBTABLE[hexdec(substr($l, 7, 6))] = hexdec(substr($l, 0, 6)); } fclose($fp); } $okstr = ""; $ulen = strlen($utfstr); for($i=0;$i<$ulen;$i++) { $c = $utfstr[$i]; $cb = decbin(ord($utfstr[$i])); if(strlen($cb)==8) { $csize = strpos(decbin(ord($cb)),"0"); for($j=0;$j < $csize;$j++) { $i++; $c .= $utfstr[$i]; } $c = utf82u($c); if(isset($UC2GBTABLE[$c])) { $c = dechex($UC2GBTABLE[$c]+0x8080); $okstr .= chr(hexdec($c[0].$c[1])).chr(hexdec($c[2].$c[3])); } else { $okstr .= "&#".$c.";"; } } else { $okstr .= $c; } } $okstr = trim($okstr); return $okstr; } } /** * GB转UTF-8编码 * * @access public * @param string $gbstr gbk的字符串 * @return string */ if ( ! function_exists('gb2utf8')) { function gb2utf8($gbstr) { if(function_exists('iconv')) { return iconv('gbk','utf-8//ignore',$gbstr); } global $CODETABLE; if(trim($gbstr)=="") { return $gbstr; } if(empty($CODETABLE)) { $filename = DEDEINC."/data/gb2312-utf8.dat"; $fp = fopen($filename,"r"); while ($l = fgets($fp,15)) { $CODETABLE[hexdec(substr($l, 0, 6))] = substr($l, 7, 6); } fclose($fp); } $ret = ""; $utf8 = ""; while ($gbstr != '') { if (ord(substr($gbstr, 0, 1)) > 0x80) { $thisW = substr($gbstr, 0, 2); $gbstr = substr($gbstr, 2, strlen($gbstr)); $utf8 = ""; @$utf8 = u2utf8(hexdec($CODETABLE[hexdec(bin2hex($thisW)) - 0x8080])); if($utf8!="") { for ($i = 0;$i < strlen($utf8);$i += 3) $ret .= chr(substr($utf8, $i, 3)); } } else { $ret .= substr($gbstr, 0, 1); $gbstr = substr($gbstr, 1, strlen($gbstr)); } } return $ret; } } /** * Unicode转utf8 * * @access public * @param string $c Unicode的字符串内容 * @return string */ if ( ! function_exists('u2utf8')) { function u2utf8($c) { for ($i = 0;$i < count($c);$i++) { $str = ""; } if ($c < 0x80) { $str .= $c; } else if ($c < 0x800) { $str .= (0xC0 | $c >> 6); $str .= (0x80 | $c & 0x3F); } else if ($c < 0x10000) { $str .= (0xE0 | $c >> 12); $str .= (0x80 | $c >> 6 & 0x3F); $str .= (0x80 | $c & 0x3F); } else if ($c < 0x200000) { $str .= (0xF0 | $c >> 18); $str .= (0x80 | $c >> 12 & 0x3F); $str .= (0x80 | $c >> 6 & 0x3F); $str .= (0x80 | $c & 0x3F); } return $str; } } /** * utf8转Unicode * * @access public * @param string $c UTF-8的字符串信息 * @return string */ if ( ! function_exists('utf82u')) { function utf82u($c) { switch(strlen($c)) { case 1: return ord($c); case 2: $n = (ord($c[0]) & 0x3f) << 6; $n += ord($c[1]) & 0x3f; return $n; case 3: $n = (ord($c[0]) & 0x1f) << 12; $n += (ord($c[1]) & 0x3f) << 6; $n += ord($c[2]) & 0x3f; return $n; case 4: $n = (ord($c[0]) & 0x0f) << 18; $n += (ord($c[1]) & 0x3f) << 12; $n += (ord($c[2]) & 0x3f) << 6; $n += ord($c[3]) & 0x3f; return $n; } } } /** * Big5码转换成GB码 * * @access public * @param string $Text 字符串内容 * @return string */ if ( ! function_exists('big52gb')) { function big52gb($Text) { if(function_exists('iconv')) { return iconv('big5','gbk//ignore',$Text); } global $BIG5_DATA; if(empty($BIG5_DATA)) { $filename = DEDEINC."/data/big5-gb.dat"; $fp = fopen($filename, "rb"); $BIG5_DATA = fread($fp,filesize($filename)); fclose($fp); } $max = strlen($Text)-1; for($i=0;$i<$max;$i++) { $h = ord($Text[$i]); if($h>=0x80) { $l = ord($Text[$i+1]); if($h==161 && $l==64) { $gbstr = " "; } else { $p = ($h-160)*510+($l-1)*2; $gbstr = $BIG5_DATA[$p].$BIG5_DATA[$p+1]; } $Text[$i] = $gbstr[0]; $Text[$i+1] = $gbstr[1]; $i++; } } return $Text; } } /** * GB码转换成Big5码 * * @access public * @param string $Text 字符串内容 * @return string */ if ( ! function_exists('gb2big5')) { function gb2big5($Text) { if(function_exists('iconv')) { return iconv('gbk','big5//ignore',$Text); } global $GB_DATA; if(empty($GB_DATA)) { $filename = DEDEINC."/data/gb-big5.dat"; $fp = fopen($filename, "rb"); $gb = fread($fp,filesize($filename)); fclose($fp); } $max = strlen($Text)-1; for($i=0;$i<$max;$i++) { $h = ord($Text[$i]); if($h>=0x80) { $l = ord($Text[$i+1]); if($h==161 && $l==64) { $big = " "; } else { $p = ($h-160)*510+($l-1)*2; $big = $GB_DATA[$p].$GB_DATA[$p+1]; } $Text[$i] = $big[0]; $Text[$i+1] = $big[1]; $i++; } } return $Text; } } /** * unicode url编码转gbk编码函数 * * @access public * @param string $str 转换的内容 * @return string */ if ( ! function_exists('UnicodeUrl2Gbk')) { function UnicodeUrl2Gbk($str) { //载入对照词典 if(!isset($GLOBALS['GbkUniDic'])) { $fp = fopen(DEDEINC.'/data/gbk-unicode.dat','rb'); while(!feof($fp)) { $GLOBALS['GbkUniDic'][bin2hex(fread($fp,2))] = fread($fp,2); } fclose($fp); } //处理字符串 $str = str_replace('$#$','+',$str); $glen = strlen($str); $okstr = ""; for($i=0; $i < $glen; $i++) { if($glen-$i > 4) { if($str[$i]=='%' && $str[$i+1]=='u') { $uni = strtolower(substr($str,$i+2,4)); $i = $i+5; if(isset($GLOBALS['GbkUniDic'][$uni])) { $okstr .= $GLOBALS['GbkUniDic'][$uni]; } else { $okstr .= "&#".hexdec('0x'.$uni).";"; } } else { $okstr .= $str[$i]; } } else { $okstr .= $str[$i]; } } return $okstr; } } /** * 自动转换字符集 支持数组转换 * * @access public * @param string $str 转换的内容 * @return string */ if ( ! function_exists('AutoCharset')) { function AutoCharset($fContents, $from='gbk', $to='utf-8') { $from = strtoupper($from)=='UTF8'? 'utf-8' : $from; $to = strtoupper($to)=='UTF8'? 'utf-8' : $to; if( strtoupper($from) === strtoupper($to) || empty($fContents) || (is_scalar($fContents) && !is_string($fContents)) ){ //如果编码相同或者非字符串标量则不转换 return $fContents; } if(is_string($fContents) ) { if(function_exists('mb_convert_encoding')) { return mb_convert_encoding ($fContents, $to, $from); } elseif (function_exists('iconv')) { return iconv($from, $to, $fContents); } else { return $fContents; } } elseif(is_array($fContents)) { foreach ( $fContents as $key => $val ) { $_key = AutoCharset($key,$from,$to); $fContents[$_key] = AutoCharset($val,$from,$to); if($key != $_key ) unset($fContents[$key]); } return $fContents; } else{ return $fContents; } } } ?>
发表评论
-
phpcms v9网站搬家更换域名的方法
2016-06-17 09:39 1518网站在发展的过程中,很可能多次的修改域名。那么在PHPCM ... -
phpcms SEO
2016-06-15 16:33 1342大家应该都是在header头文件里写上{if isset( ... -
Magento 自定义Url
2013-12-12 22:21 1342查看Url重写列表,在后台的Catalog > URL ... -
magento 如何安装模板主题
2013-11-07 23:26 2108注意区分“主题包”和“主题文件”这两个概念。我们所使用的主 ... -
MAGENTO调试时候,关闭缓存
2013-11-07 22:43 3653在调试MAGENTO的时候,我们其实不需要为了每一个小的的 ... -
Magento 返回不带Layout的页面输出
2013-08-06 13:58 8692. 在controller的代码方式创建并输出block ... -
magento 添加 删除css js
2013-06-03 20:41 2551在addJs、addCss的代码一般在page/html_ ... -
Magento Shell
2013-04-16 15:32 1489在magento/shell/下Virtualcard.p ... -
Magento 开启模板路径提示
2013-01-30 17:22 2288Magento 中, 任何一个页面中的 html 代码都来 ... -
Magento 中的事件
2013-01-06 14:19 1327magento的事件机制就跟dural的hook机制一样,为了 ... -
Magento Adminhtml Form
2012-11-29 17:37 1586开发Magento后台的时候经常用到表单(Varien_D ... -
Magento 添加后台管理 addColumn
2012-11-16 17:07 1993复选框 $row->getData($this-& ... -
Magento 覆写
2012-10-16 13:37 1539magento的覆写很重要,在项目开发过程中经常需要修改核心的 ... -
Magento 自动添加属性 自动添加表
2012-09-03 13:43 19791自动添加属性字段 config.xml <r ... -
Magento 临时替代默认店铺
2012-08-22 10:10 1455多店铺主题切换http://hudeyong926.ite ... -
Magento API v2 之webservice
2012-07-31 17:36 1838http://yourserver.com/api/v2_so ... -
Magento 添加后台管理
2012-07-27 11:13 4364后台菜单显示点击后404,如果adminhtml.xml配 ... -
Magento 如何调用static block
2012-04-19 15:53 1749若想在站点页面的某个地方放点静态的内容,比如广告,或者是促 ... -
Magento 数据库EVA
2012-03-14 16:30 2987实体,属性和值(EVA)数据库架构排在第一,非常难以把握。E ... -
Magento API v1 之webservice
2012-03-09 12:18 3101sales/etc/api.xml <?xml ver ...
相关推荐
【CMS程序】Dedecms 5.3到phpcms 2008转换程序是针对两种不同内容管理系统(CMS)的数据迁移工具。这个过程涉及到将一个网站从DedeCMS 5.3版本升级或迁移至phpcms 2008版本。DedeCMS和phpcms都是国内广泛应用的开源...
这个插件包含了GBK和UTF-8两种字符编码版本,以适应不同用户的需求。 GBK编码是中国大陆地区广泛使用的汉字编码标准,它是GB2312编码的扩展,能够支持更多的汉字和符号。而UTF-8是一种无损的多字节编码方式,它能够...
升级过程通常涉及到数据库表的编码转换、模板文件的编码修改以及可能存在的配置文件调整。 【知识点详解】: 1. PHP:这是一种广泛应用的开源服务器端脚本语言,尤其适用于Web开发,并可嵌入HTML中。PHP支持多种...
在上传时,DEDECMS 5.7后台将该文件名中的特殊字符替换成空格,从而使文件名变为"1.jpg"。但是,攻击者可以通过在文件名前添加特殊字符来 bypass DEDECMS 5.7后台的安全检查。例如,攻击者可以上传一个名为"1....
创造专属艺术字-字体定制-系统源码-支持自定义字体/在线艺术字体转换器 您现在可以随心所欲地在线生成、转换和设计艺术字体。我们的系统源码以html为主, 虽然基于DedeCMS内核,但赋予您无限的可能性。后台管理...
UTF-8 和 GBK 是两种不同的字符编码标准,它们在计算机处理中文字符时起到至关重要的作用。这篇关于“UTF-8_To_GBK”的软件源码分析将深入探讨这两种编码的区别,以及如何在VB(Visual Basic)环境中进行编码转换。 ...
【DedeCMS 存储型 XSS 漏洞1】详解 DedeCMS 是一款广泛使用的基于PHP的开源网站管理系统,其特色在于提供了一个简洁易用的后台管理界面,帮助企业或个人快速构建网站。然而,如同任何软件一样,DedeCMS 也存在安全...
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。...【项目质量】:所有源码都经过严格测试,可以直接...
标题提及的"Dedecms存在储存型跨站脚本漏洞1"主要涉及到的是Dedecms网站管理系统的一个安全问题,具体来说,这是一个由于程序代码过滤不足导致的存储型跨站脚本( Stored Cross-Site Scripting, XSS )漏洞。Dedecms...
并确保所有涉及到字符编码的配置项都正确设置。 4. 网页头部声明: 在HTML文件中,添加或修改字符集声明,以确保浏览器正确解析页面内容: ```html ``` 5. 用户界面适配: 如果用户界面有部分元素显示不...
dedecms批量漏洞扫描,大家可以自己试试效果
织梦dedecms转wordpress插件,该插件可以把织梦数据完整的转到wordpress并保持源链接不变不影响SEO,该插件可以把织梦的,系统参数、栏目分类、栏目内容、栏目TDK、文章内容、文章自定义字段、友情链接、一起转入到...
2. 下载并安装插件:从可靠来源获取织梦DedeCMS批量导入Excel插件,并按照官方文档或说明安装到你的DedeCMS系统中。 3. 设置权限:确保插件具有读取和写入数据库的权限,以便能够正确导入数据。 4. 导入操作:在...
这个工具旨在简化从DedeCMS到WellCMS的数据转换过程,确保用户在切换系统时不会丢失任何关键信息。以下是这个工具能处理的主要数据类型: 1. **用户数据**:包括用户的注册信息、登录凭证、个人资料等,这些数据的...
该系统支持GBK编码,是一种在中国大陆地区常用的中文字符编码方式,能够处理大部分中文字符,但在处理一些特殊字符或繁体字时可能会遇到问题。 在这个“基于PHP的DEDECMS站群增强版GBK源码.zip”压缩包中,我们主要...
wLHK-Dedecms漏洞整理 从给定的文件信息中,我们可以看到该文件是关于Dedecms漏洞的整理报告,包含了多个漏洞的详情,包括SQL注入漏洞、XSS漏洞等。下面我们将对这些漏洞进行详细的分析和解释。 首先,我们来看第...
如图所示:dedecms在线订单发送邮件插件用途:访客在线发送信息到您预先设置的邮箱,稍加修改,即可作为订单、反馈、求职等邮件发送。解压包里有安装说明,新手不会的话可以联系站长,或者留言即可。
模板支持两种字符编码格式:UTF8和GBK,UTF8是国际通用的多语言编码,GBK是中国大陆常用的中文编码。"蓝色风格"说明模板采用了蓝色作为主要设计色调,通常蓝色给人以专业、稳重的感觉,适合用于商业或正式场合的网站...
dedecms一键解密工具 用起来方便简单 添加地址直接一键使用 dedecms网络渗透专用