国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

PHP開發的9條經驗總結

2019-11-02 15:51:35
字體:
來源:轉載
供稿:網友

   1.首要意識:安全

  大多數時候,我們開發的Web程序都是需要跟數據庫打交道的,所以這里幾乎可以說SQL注入是一個怎么也無法避免要拿出來討論一下的問題。而且近年來像XSS和CSRF攻擊也變得大行其道,使得"黑客"們貌似又有了一把把利器,而我們總是處于被動的狀態。不過我們要記得是下面這兩個原則:

  1. 永遠不要相信用戶輸入的東西。(老話了,但這是真的)

  2. 將自己需要輸出的數據進行轉義。

  簡單來說就是:filter in put , escape output

  如果你是新手,不要再使用類似以下的查詢語句了:

  SELECT FROM users WHERE username = $_POST['username'] AND password = $_POST['password'];

  還有就是,使用PDO或Mysqli吧,不要再使用老式的mysql操作了。

  而對于,CSRF的解決方案,目前接觸的都是給每一次的表單提交都設置一個token值,然后在表單提交的時候校驗之即可。

  2.明確地知道各個比較操作符的差別

  PHP的比較操作符,這其實可以說是一個很小的注意點,但是在某些時候真的很重要。比如說很多時候我們得考慮清楚,該用==還是===,如果你使用過strpos()這個函數,下面的代碼可能會給你一個直觀的感受:

PHP開發的9條經驗總結 三聯

  上面這段代碼的運行結果其實是輸出Chris is not an author,但是現實情況是,Chris & Sean真的是Author啊,怎么回這樣呢?其實是這樣的:Chris正好出現在Chris & Sean首位開始處,也就是0這個位置,所以substr()返回了,由于條件判斷語句中bool判斷,所以0作為了false處理,于是程序輸出了Chris is not an author,但是在這種情況之下我們該怎么處理呢?我們其實可以這樣的:

PHP開發的9條經驗總結

  這里的!==和!=的不同就體現出來了。

  3.可以減少使用else就少使用else

  這個貌似從我一開始接觸編程就有的一個想法,因為每次看到if(){}else{}就有一種這一段其實可以寫得更好的感覺,因為一旦你減少了使用else關鍵字,你得代碼會減少兩行!沒錯,兩行也是我們的追求,而且,從我的經驗看,else少的代碼貌似可讀性更高,對我來說。

  if( this condition ) { $x = 5; } else{ $x = 10;}

  如果,在$x的默認值是10,還是下面這樣寫感覺比較好:

  $x = 10;

  if( this condition )

  { $x = 5; }

  4.去掉不必要的括號

  這里的目的其實跟else關鍵字部分是一樣的,我們是為了更簡短的代碼和更優越的可讀性,對以下的情況,你都應該考慮優化代碼:

  if ($gollum == 'halfling') { $height --; }

  其實是可以這樣的:

  if ($gollum == 'halfling') $height --;

  你甚至可以這樣:

PHP開發的9條經驗總結

  是不是有一種又短又清晰的感覺?

  5.多用str_replace()

  在很多時候我們需要對一些字符串進行替換,在PHP中有以下幾個函數可以達到這個目的:

  str_replace()

  ereg_replace()

  preg_replace()

  如果你確實是需要使用正則匹配,那就使用preg_replace(),而如果在可實現替換的情況下,請使用str_replace(),因為據不完全統計,str_replace()的效率在這三個當中是最高的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 四子王旗| 利辛县| 讷河市| 应用必备| 松江区| 陇西县| 开封县| 金沙县| 古蔺县| 台南县| 沙田区| 邮箱| 连州市| 芦山县| 常熟市| 绍兴市| 绥德县| 开化县| 墨玉县| 西宁市| 卓资县| 汝阳县| 长子县| 张家港市| 光泽县| 伊川县| 大竹县| 彰武县| 罗田县| 共和县| 基隆市| 哈密市| 墨江| 南开区| 庆城县| 吴江市| 枣阳市| 阳新县| 新宁县| 织金县| 类乌齐县|