解决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]

发表评论

回复 游客 取消回复

评论列表(9)

  • 问问

    2010.10.28 15:10

    加这段代码后 在本地登录不了后台为什么呀?

    额,不会吧

    回复
  • 求学

    2010.8.2 11:08

    5。6 gbk
    按你的改了,采集发布成功
    但是后台,不能编辑文章
    点击编辑文章,就一片空白
    谢谢,求解

    编辑文章出现空白,这可能与本文提供方法无关,你看看手工发布文章是否正常!

    回复
  • 杨文剑

    2010.5.1 18:05

    简单实用,非常感谢博主的一片苦心。

    回复
  • 游客

    2009.12.19 20:12

    领导好 请问一下 我改了这个参数 测试时是发上去了(本地的) 可是到发布的时候(采回来的数据发布) 却发布不上去 没有任何提示 只提示发布成功 但文章没有见着 我发的是SHOP模块的 不知道为什么

    回复
  • 游客

    2009.10.17 09:10

    按这样修改后,商品发布还是不能用。仍然是乱码。。。

    回复
  • 爱火车

    2009.9.7 00:09

    发布后,文章的自定义属性的确无法修改~~
    期待修正!

    2009-09-18日已经修正,感谢支持。

    回复
  • 游客

    2009.8.6 05:08

    5.5的按这个方法修改后,文档属性无法用了

    2009-09-18日已经修正,感谢支持。

    回复
  • 游客

    2009.7.20 01:07

    我也来顶个

    感谢支持。

    回复
  • 游客

    2009.7.5 18:07

    顶了,谢谢分享

    回复