腳本之家使用火車頭發(fā)布DEDECMS 5.5 出現(xiàn)亂碼的解決辦法
時(shí)間: 2019-05-13 10:26
閱讀: 次
作者:素材無憂網(wǎng)
但發(fā)布到DEDE 5.5的時(shí)候,自帶的程序默認(rèn)的是發(fā)布文章的版塊。而我做的是下載站。去網(wǎng)上DOWN了個(gè)不錯(cuò)的模塊,針對(duì)DEDE 5.1、5.3、5.5通用的一個(gè)模板。里面有全部文章,商品,下載等所有模板。 下載地址:/softs/26772.html
接著繼續(xù)發(fā)布,到發(fā)布的時(shí)候又有一個(gè)問題,發(fā)現(xiàn)發(fā)布的文章是亂碼。這個(gè)地方需要修改一個(gè)文件,打開DEDE目錄下的config.php 在最后一行加入:
//給POST變量做轉(zhuǎn)碼處理,適用于火車采集器中Urlencode發(fā)布的內(nèi)容
foreach($_POST as $key=>$value){
${$key} = $_POST[$key] = urldecode($value);
}
即可解決亂碼問題。 由于沒有考慮到DEDE提交的數(shù)據(jù)中還有FLAGS數(shù)組,上面的Urldecode操作會(huì)將FLags的值抹掉,所以,有一些用戶就會(huì)發(fā)現(xiàn)發(fā)布推薦參數(shù)時(shí) 不成功
加入這行代碼即可:
//給POST變量做轉(zhuǎn)碼處理,適用于火車采集器中Urlencode發(fā)布的內(nèi)容
foreach($_POST as $key=>$value){
!is_array($value) && ${$key} = $_POST[$key] = urldecode($value);
}
如果要遍歷數(shù)組,對(duì)所有值進(jìn)行處理的話,我寫了一個(gè)遞歸函數(shù),適于用所有變量,包括變量中的數(shù)組。
function ArrayUrldecode($_POST){
foreach($_POST as $key=>$value){
if(is_array($value)){ ArrayUrldecode($value);
}else{
$_POST[$key] = urldecode($value); } }
return $_POST;
}