我的PHP應用程序通過addslashes()
將反斜槓添加到許多位置的引號中。不幸的是,這種添加產生了類似於以下的輸出。如何停止重複反斜槓?
每次刷新我的頁面時,此字符串的反斜槓數量都會增加。
不
唐\ '噸
不要\\' T
不要\\\\ 'T
不要\\\\\\\\' T
等。
我想編寫一個刪除所有這些額外反斜槓的函數。我試過
str_replace($text, "\\\\", "");
無濟於事。
我的PHP應用程序通過addslashes()
將反斜槓添加到許多位置的引號中。不幸的是,這種添加產生了類似於以下的輸出。如何停止重複反斜槓?
每次刷新我的頁面時,此字符串的反斜槓數量都會增加。
不
唐\ '噸
不要\\' T
不要\\\\ 'T
不要\\\\\\\\' T
等。
我想編寫一個刪除所有這些額外反斜槓的函數。我試過
str_replace($text, "\\\\", "");
無濟於事。
你可能只需要使用:
stripslashes($text);
$text=preg_replace('/\134+/',"\134",$text);
會發生什麼,如果你的實際值恰好包括\\
合法?例如,如果您的內容是指Windows風格的共享參考 - \\192.168.1.1\foo
。如果你盲目地去掉任何雙斜槓,你會去掉那些意思是也在那裏。
「正確」的答案實際上是不需要斜線添加到不需要它們的東西。你應該知道給定的值是否已經被轉義(畢竟,你是一個控制每個值來自哪裏的地方,以及它被用於什麼地方)並且只在你需要的時候增加斜線。
發佈你的代碼會有幫助。它可能是一個神奇的引號問題,或者你如何使用你的addslashes,或者......代碼總是最好的方式來獲得你的代碼問題的具體幫助。但是我傾向於僅使用stripslashes作爲輸出,或者僅在推測的數據庫提交之前使用addslashes。 – Blake 2012-03-29 01:11:40
我認爲合理的解決方案是不要調用addslashes()。相反,只需在需要時手動添加斜線。 – Kristian 2012-03-29 01:11:44