php stripslashes()函數和addslashes()函數的區別實例詳解
前面介紹了php中addslashes()函數和stripslashes()函數的作用以及一些用法,這篇文章介紹一下PHP stripslashes()函數和addslashes()函數的區別。
從函數名稱來說它們的差異:strip(剝離)slashes(斜線)add(新增)slashes(斜線),所以它們一個是剝離斜線一個是添加添加斜線作用是相反的。
使用場景:其實這兩個函數主要使用在一些需要轉換特殊字元的資料處理中,例如資料庫操作,在寫入資料庫的時候,我們需要把單引號這樣的特殊字元轉義之後保存,而在讀取的時候,
我們又需要把資料庫中的這些被轉義的特殊字元反轉義回來。
我們在寫入資料到mysql時,例如:
mysql_query("update table set `title`='kuhanzhu's blog'");
那就會出錯。同asp時一樣,資料庫都會對單引號過敏。而addslashes在這個時候就最長面子了,跟asp的replace(”'”,””,”kuhanzhu's blog”)功能一樣。
PHP為了安全性,所以引入了個magic_quotes_gpc = On的功能,可以不需要做任何處理就能直接把單引號插入資料庫中,那麼對於Off時,則需要考慮單引號的問題了,而不是一味地信任運行環境。 On時,使用了addslashes()處理後的資料在資料庫中將以\'形式保存,如果此時直接輸出的話,就會發現比自己期待的內容多了個\,因此stripslashes()出場了,它能把\去掉(區別於str_replace(”\”, “”,$Str))。 ,沒有上面說的有\的問題,addslashes()起到插入資料不出錯的作用,如果此時直接輸出的話,資料正常。 stripslashes()剛好是相反的,直接記憶:addslashes()加個\,stripslashes()去個\
那麼什麼時候用呢?
#當magic_quotes_gpc = On時,系統會自動處理單引號等問題,用不用addslashes()和stripslashes()都沒關係,但是如果添加資料時用了addslashes(),那麼顯示資料時必須要stripslashes( )當magic_quotes_gpc = Off時,系統不會處理單引號等問題,所以插入資料時必須使用addslashes(),顯示資料時則不需要使用stripslashes()。既然有了分析,做程式時該怎麼辦呢? addslashes(),當On時,必須使用stripslashes(),Off時則不能用stripslashes()。
如何判斷On還是Off呢? )函數請看這篇文章
實例
#程式碼如下:
代码 //提交数据,或者变量准备: $Content=addslashes(”这里面是数据,不管有没单引号或者还是变量”); //插入数据到数据库,代码省略 //开始显示数据 $Content=”从数据库读取的数据”; if(get_magic_quotes_gpc()){ $Content=stripslashes($Content); } echo $Content;
【相關文章推薦】:
php addslashes()函數和stripslashes()函數實例詳解
以上是php stripslashes()函數和addslashes()函數的區別實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

多線程和異步的區別在於,多線程同時執行多個線程,而異步在不阻塞當前線程的情況下執行操作。多線程用於計算密集型任務,而異步用於用戶交互操作。多線程的優勢是提高計算性能,異步的優勢是不阻塞 UI 線程。選擇多線程還是異步取決於任務性質:計算密集型任務使用多線程,與外部資源交互且需要保持 UI 響應的任務使用異步。

C語言中沒有內置求和函數,需自行編寫。可通過遍歷數組並累加元素實現求和:循環版本:使用for循環和數組長度計算求和。指針版本:使用指針指向數組元素,通過自增指針遍歷高效求和。動態分配數組版本:動態分配數組並自行管理內存,確保釋放已分配內存以防止內存洩漏。

在 C 語言中,char 和 wchar_t 的主要區別在於字符編碼:char 使用 ASCII 或擴展 ASCII,wchar_t 使用 Unicode;char 佔用 1-2 個字節,wchar_t 佔用 2-4 個字節;char 適用於英語文本,wchar_t 適用於多語言文本;char 廣泛支持,wchar_t 依賴於編譯器和操作系統是否支持 Unicode;char 的字符範圍受限,wchar_t 的字符範圍更大,並使用專門的函數進行算術運算。

以太币与比特币区别显著。技术上,比特币用 PoW,以太币从 PoW 转向 PoS 。交易速度比特币慢,以太币快。应用场景里,比特币侧重支付存储,以太币支撑智能合约与 DApp 。发行上,比特币总量 2100 万枚,以太币无固定总量。安全方面各有挑战。市场价值上,比特币市值居首,两者价格波动都大,但因特性不同,以太币价格走势有独特之处 。

Apache或Nginx與PHP的協同工作機制:mod_php5、php-cgi和php-fpm的比較在使用Apache或Nginx搭建Web服務器並使用PHP進行後端�...

無法找到一款將 XML 直接轉換為 PDF 的應用程序,因為它們是兩種根本不同的格式。 XML 用於存儲數據,而 PDF 用於顯示文檔。要完成轉換,可以使用編程語言和庫,例如 Python 和 ReportLab,來解析 XML 數據並生成 PDF 文檔。

C語言函數是代碼模塊化和程序搭建的基礎。它們由聲明(函數頭)和定義(函數體)組成。 C語言默認使用值傳遞參數,但也可使用地址傳遞修改外部變量。函數可以有返回值或無返回值,返回值類型必須與聲明一致。函數命名應清晰易懂,使用駝峰或下劃線命名法。遵循單一職責原則,保持函數簡潔性,以提高可維護性和可讀性。

Go語言中結構體定義的兩種方式:var與type關鍵字的差異Go語言在定義結構體時,經常會看到兩種不同的寫法:一�...
