我在GET請求逃逸問題
{"foo":[{"bo1":"*","bob":"*"}]}
發送此字符串,但得到它在PHP作爲
{\"foo\":[{\"bo1\":\"*\",\"bob\":"\*\"}]}
我如何得到它作爲{"foo":[{"bo1":"*","bob":"*"}]}
發送它作爲查詢字符串的一部分(或如何通過GET方法發送它來正確獲取)? (注意:我無法清理它,因爲我無法控制服務器端。)
我在GET請求逃逸問題
{"foo":[{"bo1":"*","bob":"*"}]}
發送此字符串,但得到它在PHP作爲
{\"foo\":[{\"bo1\":\"*\",\"bob\":"\*\"}]}
我如何得到它作爲{"foo":[{"bo1":"*","bob":"*"}]}
發送它作爲查詢字符串的一部分(或如何通過GET方法發送它來正確獲取)? (注意:我無法清理它,因爲我無法控制服務器端。)
禁用magic_quotes:已棄用。如果你不能,你總是可以在輸入使用stripslashes:
$goodStr = stripslashes($_GET['badStr']);
你的PHP配置已經啓用magic_quotes_gpc的,這會導致所有_GET,_POST和_COOKIE超全局引號和雙引號的自動轉義。
如果您不需要它,請將其關閉。如果你這樣做,那麼你應該重寫依賴這種行爲的代碼,因爲它是折舊的,並且將在未來的php版本中被刪除。
如果可能,您應該在php.ini中將其關閉。無論如何,如果你由於某些原因不能關閉這個,只需使用stripslashes($ your_json);
如果服務器在Apache上運行,請在站點根目錄下創建一個名爲.htaccess的文件(前導期是文件名的一部分)。將以下代碼放入文件中:
php_flag magic_quotes_gpc Off
否則,您需要每次使用stripslashes()。