解决DEDE中UrlEncode乱码的问题
我们知道,用火车采集器发布数据时,可能会需要使用UrlEncode发布。如:空格丢失,内容中含有&等可能隔断参数的符号等,由于DEDE默认没有加入对变量的转码处理,所以,使用UrlEncode发布到DEDE时,会出现乱码现像。
此文为解决办法。
修改DEDE管理员目录,默认为dede。
在dede/config.php末尾中加一段代码即可
以下为图片示例,看得清楚一些:
代码如下:
[php]//给POST变量做转码处理,适用于火车采集器中Urlencode发布的内容
foreach($_POST as $key=>$value){ !is_array($value) && ${$key} = $_POST[$key] = urldecode($value); }[/php]
如果要遍历数组,对所有值进行处理的话,我写了一个递归函数,适于用所有变量,包括变量中的数组,非技术人员可以飞过。
[php]
function ArrayUrldecode($_POST){
foreach($_POST as $key=>$value){
if(is_array($value)){
ArrayUrldecode($value);
}else{
$_POST[$key] = urldecode($value);
}
}
return $_POST;
}
[/php]
加这段代码后 在本地登录不了后台为什么呀?
5。6 gbk
按你的改了,采集发布成功
但是后台,不能编辑文章
点击编辑文章,就一片空白
谢谢,求解
简单实用,非常感谢博主的一片苦心。
领导好 请问一下 我改了这个参数 测试时是发上去了(本地的) 可是到发布的时候(采回来的数据发布) 却发布不上去 没有任何提示 只提示发布成功 但文章没有见着 我发的是SHOP模块的 不知道为什么
按这样修改后,商品发布还是不能用。仍然是乱码。。。
发布后,文章的自定义属性的确无法修改~~
期待修正!
5.5的按这个方法修改后,文档属性无法用了
我也来顶个
顶了,谢谢分享