2014-04-07 33 views
1

背景:我不是一個PHP程序員,我只知道我的iOS應用程序的Web服務部分工作。PHP增加了逃避反斜線。如何阻止這個問題

我發現我的php正在我的文本中添加反斜槓,當我不想要它時。例如,如果我設置了這樣的一些變量:

$directory = "directory/"; 
$file = "file.jpg" 

然後我通過JSON陣列回到我的設備輸出:

$directory . $file 

,我得到

"directory\/file.jpg" 

我已經運行get_magic_quotes_gpc在我的PHP和它報告魔術報價被關閉。我這樣做:

if (get_magic_quotes_gpc()){ 
//then I send something back in the JSON array to let me know that get_magic_quotes_gpc is on 
} 

我試圖使用stripslashes()(無論是原始變量或輸出),沒有任何更改。

那麼我該如何阻止它這樣做呢?因爲這意味着我不能告訴我的PHP刪除特定目錄中的文件。

在此先感謝

+4

你爲什麼在意?在JSON字符串中,''''''''和''/''是相同的。 – Quentin

+0

我沒有意識到這隻發生在JSON中,我認爲它代表了php中真正發生的事情。 我以爲這是我在其他地方遇到的一個問題的症狀,但事實證明,我一直在咆哮錯誤的樹。 – narco

回答

5

當您編碼您的元素做像這樣:

json_encode($str, JSON_UNESCAPED_SLASHES); 

使用JSON_UNESCAPED_SLASHES應防止出現多餘的斜線。

+1

簡單直白的地方,這應該是被接受的吶喊;謝謝! – Shinnyx

3

如果您確實想要做到這一點,請設置the JSON_UNESCAPED_SLASHES option

json_encode ($value, JSON_UNESCAPED_SLASHES); 

但斜線沒有害處,並提供針對</script>保護被注入<script>元素,當你注入你的JSON轉換爲JavaScript程序。

+0

感謝您的回覆。我其實不需要JSON回覆(至少不是這個),我只是用它來查看發生了什麼(因爲我的文件沒有被php找到)。 也許我的問題是在別處。 – narco