php post get 繁體、日文、韓文時 自動添加 反斜槓 問題

作些二次開發項目,數據庫、文件編碼無法大規模的修改,好比二次開發一個日文系統,編碼是JA16SJIS,$_POST或$_GET的信息中若是「申請」,獲得的信息就會變成「申\請」,多出一個反斜槓!php

先貼出整理的解決辦法,在有須要的地方或配置文件中加入以下代碼數據庫

if (get_magic_quotes_gpc()) {
    function stripslashes_deep($value)
    {
        $value = is_array($value) ?
        array_map('stripslashes_deep', $value) :
        stripslashes($value);
        return $value;
    }
    $_POST = array_map('stripslashes_deep', $_POST);
    $_GET = array_map('stripslashes_deep', $_GET);
    $_COOKIE = array_map('stripslashes_deep', $_COOKIE);
}服務器

 

網絡整理相關:cookie

查了一下,貌似能夠設置php.ini中的magic_quotes_runtime網絡

在php的配置文件中,有個布爾值的設置,就是magic_quotes_runtime,當它打開時,函數

php的大部分函數自動的給從外部引入的(包括數據庫或者文件)數據中的溢出字符加上反post

斜線。 固然若是重複給溢出字符加反斜線,那麼字符串中就會有多個反斜線,因此這時編碼

就要用set_magic_quotes_runtime()與get_magic_quotes_runtime()設置和檢測php.iniip

文件中magic_quotes_runtime狀態。 爲了使本身的程序無論服務器是什麼設置都能正常開發

執行。能夠在程序開始用get_magic_quotes_runtime檢測該設置的狀態決定是否要手工處理

,或者在開始(或不須要自動轉義的時候)用set_magic_quotes_runtime(0)關掉該設置。

magic_quotes_gpc設置是否自動爲GPC(get,post,cookie)傳來的數據中的\'\"\\加上反斜

線。能夠用get_magic_quotes_gpc()檢測系統設置。若是沒有打開這項設置,能夠使用

addslashes()函數添加,它的功能就是給數據庫查詢語句等的須要在某些字符前加上了反

斜線。這些字符是單引號(\')、雙引號(\")、反斜線(\\)與 NUL(NULL 字符)。

通常用法以下;if(!get_magic_quotes_gpc()){    addslashes($prot);}

相關文章
相關標籤/搜索