這個函式 是因為看了下 phpcms 前台 getshell 發現這些函式果然乙個都不能漏。
該函式官方文件 在此 ,多翻官方文件,好多人跟我說過這個習慣 :)
原因 無非是 變數覆蓋,至於 能造成什麼危害 就看下邊**怎麼寫了。
int extract ( array &$array [, int $flags = extr_overwrite [, string $prefix = null ]] )
flags
extr_overwrite
如果有衝突,覆蓋已有的變數。
extr_skip
如果有衝突,不覆蓋已有的變數。
extr_prefix_same
如果有衝突,在變數名前加上字首 prefix。
extr_prefix_all
給所有變數名加上字首 prefix。
extr_prefix_invalid
僅在非法/數字的變數名前加上字首 prefix。
extr_if_exists
僅在當前符號表中已有同名變數時,覆蓋它們的值。其它的都不處理。 舉個例子,以下情況非常有用:定義 一些有效變數,然後從 $_request 中僅匯入這些已定義的變數。
extr_prefix_if_exists
僅在當前符號表中已有同名變數時,建立附加了字首的變數名,其它的都不處理。
extr_refs
將變數作為引用提取。這有力地表明了匯入的變數仍然引用了 array 引數的值。可以單獨使用這個標誌或 者在 flags 中用 or 與其它任何標誌結合使用。
如果沒有指定 flags,則被假定為 extr_overwrite。
extract 變數覆蓋
php extract 函式從陣列中把變數匯入到當前的符號表中。對於陣列中的每個元素,鍵名用於變數名,鍵值用於變數值。下面是php的超級全域性變數,可以了解乙個特性,全是陣列。gl obal s,所有 全域性變數 陣列g lo bals 所有全 局變數數 組 server,伺服器環境變數陣列 ge ...
PHP變數覆蓋
register globals用來註冊全域性變數 當register globals全域性變數設定開啟時,傳遞過來的值會被直接註冊為全域性變數而使用,這會造成全域性變數覆蓋 新版本沒有這個東西了,大概在5.2版本以後就消失了php version 5.2 parse str name bill a...
php安全 變數覆蓋
php.ini註冊全域性變數 將表單傳入的資料作為全域性變數,例如 接受表單傳遞的值 變數username未定義,被get請求變數覆蓋。注 5.4以上版本已刪除 5.3以下需手動新增 遍歷鍵值 echo a 輸出為get請求的值,變數a被覆蓋。extract array 將陣列轉換為變數,鍵為變數名...