關於php的你未必知道的事情 2 3 4

來源:互聯網
上載者:User

=== 2 ===
一個很有用的函數。
大家經常會這麼寫

$var = isset($src)? $src : '';

這裡要把$src寫兩遍,不夠簡單。(雖然可讀性挺強的)

有個函數可以輕鬆解決這個問題

function isset_or(&$_var, $or = '') {    return (isset($_var)) ? $_var : $or;}

注意參數$_var之前的引用符號&

=== 3 ===
數組裝載自身
$GLOBAL 數組就裝載了自身,$GLOBAL['GLOBAL']就是自己.
你用print_r()函數列印一下它就知道了.

=== 4 ===
過濾
大家都知道php的字串需要過濾,以防止sql注入,跨站指令碼攻擊等等,於是就想不通為什麼php不給自動過濾掉呢?
自動過濾是沒有意義的. 因為大部分變數都不需要過濾.
什麼時候需要過濾呢?其實這件事情很簡單.你只需要記住只有滿足以下兩點的字串才需要過濾:
1. 字串來自使用者(或者被使用者汙染過)
2. 需要嵌入外部代碼中(比如1. SQL語句 2. HTML代碼 3. 命令列)

第一種情況需要給變數套上mysql_real_escape_string()函數,第二種情況需要給變數套上htmlspecialchars()函數(也就是說每個echo都需要這麼做).第三種情況需要套上escapeshellcmd() 和 escapeshellarg() 函數.

就是這麼簡單.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.