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