當magic_quotes_gpc = On時,使用了addslashes()處理後的數據在數據庫中將以\’形式保存,若是此時直接輸出的話,就會發現比本身期待的內容多了個\,所以 stripslashes()出場了,它能把\去掉(區別於str_replace(」\」, 「」,$Str))。 數據庫
當magic_quotes_gpc = Off時,使用了addslashes()處理後的數據在數據庫中將以’形式保存,沒有上面說的有\的問題,addslashes()起到插入數據不出錯 的做用,若是此時直接輸出的話,數據正常。不須要再用stripslashes()。addslashes()和stripslashes()正好是相反 的,直接記憶:addslashes()加個\,stripslashes()去個\那麼何時用呢? ip
簡單說:當magic_quotes_gpc = On時,系統會自動處理單引號等問題,用不用addslashes()和stripslashes()都不要緊,可是若是添加數據時用了 addslashes(),那麼顯示數據時必需要stripslashes()當magic_quotes_gpc = Off時,系統不會處理單引號等問題,因此插入數據時必需要使用addslashes(),顯示數據時則不須要使用stripslashes()。既然有 了分析,作程序時要怎麼辦呢?根據以上兩種狀況,可得:無論magic_quotes_gpc是On仍是Off,咱添加數據時都用 addslashes(),當On時,必須使用stripslashes(),Off時則不能用stripslashes()。如何判斷On仍是Off 呢?用get_magic_quotes_gpc()。 get