php中什麼是魔術引號
什麼是魔術引號:
魔術引號是程式自動將進入PHP腳本的資料轉義的過程。當開啟時,所有的'(單引號),"(雙引號),\(反斜線)和NULL 字元都會被自動加上一個反斜線進行轉義。和addslashes() 函數的作用完全相同。
魔術引號指令:
magic_quotes_gpc 影響到HTTP 請求資料(GET,POST 和COOKIE)。不能在執行時改變。在PHP 中預設值為on。參見get_magic_quotes_gpc()。
magic_quotes_runtime 如果打開的話,大部份從外部來源取得資料並傳回的函數,包括從資料庫和文字文件,所傳回的資料都會被反斜線轉義。該選項可在運行的時改變,在PHP 中的預設值為off。見set_magic_quotes_runtime() 和 get_magic_quotes_runtime()。
magic_quotes_sybase 如果開啟的話,將會使用單引號對單引號進行轉義而非反引號斜線。此選項會完全覆蓋magic_quotes_gpc。如果同時開啟兩個選項的話,單引號將會被轉義成''。而雙引號、反斜線和NULL 字元將不會進行轉義。 如何取得其值參見ini_get()。
魔術引號作用:
#當初引入魔術引號是安全性的考慮,阻止SQL注入,它能幫助php新手在不知不覺中寫成相對更安全的程式碼,不過在今天,程式設計師已經能很好的意識到了這個安全問題,並最終使用資料庫轉移機製或prepared 語句來取代魔術引號功能。
##魔術引號缺陷:
可移植性:編程時認為其打開或併閉都會影響到移植性。可以用get_magic_quotes_gpc() 來檢查是否打開,並據此編程。效能: 由於並不是每一段被轉義的資料都要插入資料庫的,如果所有進入PHP 的資料都被轉義的話,那麼會對程式的執行效率產生一定的影響。在執行時間呼叫轉義函數(如addslashes())更有效率。儘管php.ini-dist 預設開啟了這個選項,但是php.ini-recommended 預設卻關閉了它,主要是出於效能的考量。# 不便:由於不是所有資料都需要轉義,在不需要轉義的地方看到轉義的資料就很煩。比如說透過表單發送郵件,結果看到一大堆的\'。針對這個問題,可以使用stripslashes () 函數處理。開關魔術引號:
magic_quotes_gpc 是不能透過ini_set()的來設定的,設定magic_quotes_gpc有三種方法。 1、修改PHP設定檔php.ini。這種方法需要對伺服器有管理權限才能修改,如果只是虛擬空間就只能使用後面兩種方法。; Magic quotes ; Magic quotes for incoming GET/POST/Cookie data. magic_quotes_gpc = Off ; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. magic_quotes_runtime = Off Use Sybase-style magic quotes (escape ' with '' instead of \'). Magic_quotes_sybase = Off
php_flag magic_quotes_gpc Off
<?php if (get_magic_quotes_gpc()) { function stripslashes_deep($value) { $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value); return $value; } $_POST = array_map('stripslashes_deep', $_POST); $_GET = array_map('stripslashes_deep', $_GET); $_COOKIE = array_map('stripslashes_deep', $_COOKIE); $_REQUEST = array_map('stripslashes_deep', $_REQUEST); } ?>
總結:
#當初是為了阻止SQL注入的需要引入了魔法引號,對於開發者有一定好的好友,但在使用的時候也帶來很多的不便,現在有了更多更好的方案來替代,所以如果還是在php 5.3.0或php 5.3.0之前的版本做開發應該盡量避免使用魔法引號,php 5.4.0以後已經移除了。以上是php中什麼是魔術引號的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

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

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

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

Dreamweaver CS6
視覺化網頁開發工具

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

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

PHP8.1中的枚舉功能通過定義命名常量增強了代碼的清晰度和類型安全性。 1)枚舉可以是整數、字符串或對象,提高了代碼可讀性和類型安全性。 2)枚舉基於類,支持面向對象特性,如遍歷和反射。 3)枚舉可用於比較和賦值,確保類型安全。 4)枚舉支持添加方法,實現複雜邏輯。 5)嚴格類型檢查和錯誤處理可避免常見錯誤。 6)枚舉減少魔法值,提升可維護性,但需注意性能優化。

SOLID原則在PHP開發中的應用包括:1.單一職責原則(SRP):每個類只負責一個功能。 2.開閉原則(OCP):通過擴展而非修改實現變化。 3.里氏替換原則(LSP):子類可替換基類而不影響程序正確性。 4.接口隔離原則(ISP):使用細粒度接口避免依賴不使用的方法。 5.依賴倒置原則(DIP):高低層次模塊都依賴於抽象,通過依賴注入實現。

會話劫持可以通過以下步驟實現:1.獲取會話ID,2.使用會話ID,3.保持會話活躍。在PHP中防範會話劫持的方法包括:1.使用session_regenerate_id()函數重新生成會話ID,2.通過數據庫存儲會話數據,3.確保所有會話數據通過HTTPS傳輸。

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

RESTAPI設計原則包括資源定義、URI設計、HTTP方法使用、狀態碼使用、版本控制和HATEOAS。 1.資源應使用名詞表示並保持層次結構。 2.HTTP方法應符合其語義,如GET用於獲取資源。 3.狀態碼應正確使用,如404表示資源不存在。 4.版本控制可通過URI或頭部實現。 5.HATEOAS通過響應中的鏈接引導客戶端操作。

在PHP中,異常處理通過try,catch,finally,和throw關鍵字實現。 1)try塊包圍可能拋出異常的代碼;2)catch塊處理異常;3)finally塊確保代碼始終執行;4)throw用於手動拋出異常。這些機制幫助提升代碼的健壯性和可維護性。

匿名類在PHP中的主要作用是創建一次性使用的對象。 1.匿名類允許在代碼中直接定義沒有名字的類,適用於臨時需求。 2.它們可以繼承類或實現接口,增加靈活性。 3.使用時需注意性能和代碼可讀性,避免重複定義相同的匿名類。
