2011-01-07 151 views
0

我在GET請求逃逸問題

{"foo":[{"bo1":"*","bob":"*"}]} 

發送此字符串,但得到它在PHP作爲

{\"foo\":[{\"bo1\":\"*\",\"bob\":"\*\"}]} 

我如何得到它作爲{"foo":[{"bo1":"*","bob":"*"}]}發送它作爲查詢字符串的一部分(或如何通過GET方法發送它來正確獲取)? (注意:我無法清理它,因爲我無法控制服務器端。)

回答

0

你的PHP配置已經啓用magic_quotes_gpc的,這會導致所有_GET,_POST和_COOKIE超全局引號和雙引號的自動轉義。

如果您不需要它,請將其關閉。如果你這樣做,那麼你應該重寫依賴這種行爲的代碼,因爲它是折舊的,並且將在未來的php版本中被刪除。

如果可能,您應該在php.ini中將其關閉。無論如何,如果你由於某些原因不能關閉這個,只需使用stripslashes($ your_json);

0

如果服務器在Apache上運行,請在站點根目錄下創建一個名爲.htaccess的文件(前導期是文件名的一部分)。將以下代碼放入文件中:

php_flag magic_quotes_gpc Off 

否則,您需要每次使用stripslashes()。