2012-03-29 42 views
0

我的PHP應用程序通過addslashes()將反斜槓添加到許多位置的引號中。不幸的是,這種添加產生了類似於以下的輸出。如何停止重複反斜槓?

每次刷新我的頁面時,此字符串的反斜槓數量都會增加。


唐\ '噸
不要\\' T
不要\\\\ 'T
不要\\\\\\\\' T

等。

我想編寫一個刪除所有這些額外反斜槓的函數。我試過

str_replace($text, "\\\\", ""); 

無濟於事。

+1

發佈你的代碼會有幫助。它可能是一個神奇的引號問題,或者你如何使用你的addslashes,或者......代碼總是最好的方式來獲得你的代碼問題的具體幫助。但是我傾向於僅使用stripslashes作爲輸出,或者僅在推測的數據庫提交之前使用addslashes。 – Blake 2012-03-29 01:11:40

+2

我認爲合理的解決方案是不要調用addslashes()。相反,只需在需要時手動添加斜線。 – Kristian 2012-03-29 01:11:44

回答

1

你可能只需要使用:

stripslashes($text); 
1
$text=preg_replace('/\134+/',"\134",$text); 
1

會發生什麼,如果你的實際值恰好包括\\合法?例如,如果您的內容是指Windows風格的共享參考 - \\192.168.1.1\foo。如果你盲目地去掉任何雙斜槓,你會去掉那些意思是也在那裏。

「正確」的答案實際上是不需要斜線添加到不需要它們的東西。你應該知道給定的值是否已經被轉義(畢竟,你是一個控制每個值來自哪裏的地方,以及它被用於什麼地方)並且只在你需要的時候增加斜線。