亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

關于PHP開發的9條建議

2024-05-04 23:38:05
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了關于PHP開發的9條建議,都是個人的一些經驗總結,有需要的小伙伴可以參考下。

本文只是個人從實際開發經驗中總結的一些東西,并不是什么名言警句,寫出來有兩個目的:一是時刻提醒自己要按照這些知識點來寫自己代碼,二是為了分享,說不定對你有用呢?萬一,是吧。。。

1.首要意識:安全

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

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

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

簡單來說就是:filter input , escape output

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

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

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

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

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

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

 

 
  1. <?php 
  2.  
  3. $authors = 'Chris & Sean'
  4.  
  5. if (strpos($authors, 'Chris')) { 
  6. echo 'Chris is an author.'
  7. else { 
  8. echo 'Chris is not an author.'

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

 

 
  1. <?php 
  2.  
  3. if (strpos($authors, 'Chris') !== FALSE) { 
  4. echo 'Chris is an author.'
  5. else { 
  6. echo 'Chris is not an author.'

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

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

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

 

 
  1. ifthis condition ) 
  2. $x = 5; 
  3. else 
  4. $x = 10; 

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

 

 
  1. $x = 10; 
  2. ifthis condition ) 
  3. $x = 5; 

4.去掉不必要的括號

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

 

 
  1. if ($gollum == 'halfling') { 
  2. $height --; 

其實是可以這樣的:

 

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

你甚至可以這樣:

 

 
  1. if ($gollum == 'halfling') $height --; 
  2. else $height ++;  
  3.  
  4. if ($frodo != 'dead'
  5. echo 'Gosh darnit, roll again Sauron'
  6.  
  7. foreach ($kill as $count) 
  8. echo 'Legolas strikes again, that makes' . $count . 'for me!'

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

5.多用str_replace()

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

 

 
  1. str_replace() 
  2. ereg_replace() 
  3. preg_replace() 

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

6.使用三元運算符

這個可能很多人都有這個感受,使用三元運算符之后,我們可以去掉一堆if else語句了,代碼又短又爽。

 

  
  1. $host = strlen($host) > 0 ? $host : htmlentities($host); 

7.使用緩存

目前PHP熱門的緩存技術可能就是Redis和Memcached了,在PHP的官方文檔中,也有Memcached的使用教程,至于Redis,我最近在研究中,后續會給出一些教程,如果一切順利的話。

8.使用框架

框架的好處很多,可能是在性能方面有所損失外,貌似找不到不用框架的理由了,框架即可以加快你的開發速度,也可以讓你在寫代碼的過程中擼的舒舒服服,而且想很多安全問題,你都會得到很好的解決。我這里首推Laravel,不過像Yii2 Slim Symfony都是非常棒的框架,除了Symfony沒有嘗過過之外,剩下的三個我都有使用經歷,最后就基本是用Laravel了。不過我建議的Laravel可能不適合你,這還是得看個人喜好。

9.用isset()代替strlen()

如果你需要在項目代碼中需要根據一個字符串的長度來做條件判斷,這個時候非常推薦你直接使用isset(),因為在同等條件之后,isset()的速度是strlen()的五倍左右,所以:

 

 
  1. <?php 
  2.  
  3. if (isset($username[5])) { 
  4. // The username is at least six characters long. 
  5.  
  6.  
  7. if (strlen($username) >= 6) { 
  8. // The username is at least six characters long. 

以上的兩個條件判斷都是可以達到相同的目的,但是我推薦使用的是第一種。

以上所述就是本文的全部內容了,希望大家能夠喜歡

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美最猛性xxxxx免费| 黄色精品一区二区| 日韩av资源在线播放| 中文字幕av一区二区三区谷原希美| 亚洲自拍偷拍区| 中文字幕亚洲图片| 欧美亚洲视频在线看网址| 国产精品视频区| 国产视频在线一区二区| 亚洲一区二区三| 亚洲国产精品99| 日韩精品有码在线观看| 日韩午夜在线视频| 欧美极度另类性三渗透| 日韩中文在线中文网三级| 一区二区欧美久久| 欧美在线视频观看免费网站| 亚洲美女av电影| 一区二区三区在线播放欧美| 国产精品亚洲第一区| 亚洲国产精品久久91精品| 亚洲免费av网址| 国产精品第一区| 亚洲电影在线看| 欧美日韩美女在线| 亚洲区一区二区| 亚洲欧美综合v| 欧美大人香蕉在线| 91久热免费在线视频| 日韩免费av一区二区| 国产精品色悠悠| 97免费在线视频| 国产亚洲欧洲在线| 日韩欧美在线看| 亚洲国产精品久久精品怡红院| 国产国语videosex另类| 欧美视频在线看| 欧美激情视频免费观看| 国产精品久久电影观看| 精品久久久久久久久久| 亚洲天堂开心观看| 国产欧美日韩专区发布| 精品电影在线观看| 91伊人影院在线播放| 欧美在线激情网| 久久精品福利视频| 日本午夜在线亚洲.国产| 国产一区二区三区视频免费| 国内揄拍国内精品少妇国语| 91免费在线视频网站| 91精品久久久久久久久不口人| 91中文精品字幕在线视频| 亚洲自拍偷拍色片视频| 国产精品久久久久久久久久尿| 久久五月天综合| 亚洲国产精品久久久| 国产精品免费一区| 欧美大学生性色视频| 久久伊人免费视频| 久久久久成人精品| 色综合久综合久久综合久鬼88| 成人天堂噜噜噜| 精品美女久久久久久免费| 国产中文欧美精品| 国产区亚洲区欧美区| 大胆欧美人体视频| www.日韩视频| 高清一区二区三区四区五区| 亚洲男人的天堂网站| 亚洲精品综合精品自拍| 高清欧美性猛交| 亚洲人成绝费网站色www| 亚洲欧美日本伦理| 中文字幕国产精品久久| 欧美裸体xxxx| 中文字幕视频在线免费欧美日韩综合在线看| 国产精品久久久久国产a级| 亚洲剧情一区二区| 国产日韩欧美视频在线| 亚洲国产精品久久久| 国产精品久久久久aaaa九色| 在线视频一区二区| 97在线视频免费观看| 午夜欧美大片免费观看| 欧美日韩另类字幕中文| 国产精品久久久久久久久久久久久久| 久久久久久久久国产| 亚洲色图美腿丝袜| 亚洲欧美激情四射在线日| 久久综合88中文色鬼| 91久久久亚洲精品| 亚洲人成网站999久久久综合| 亚洲综合大片69999| 黄色一区二区三区| 深夜福利亚洲导航| 欧美精品一本久久男人的天堂| 亚洲aaa激情| 米奇精品一区二区三区在线观看| 亚洲欧美在线x视频| 日韩欧美在线一区| 一区二区三区视频免费| www.亚洲人.com| 欧美性高潮床叫视频| 亚洲精品视频中文字幕| 国产美女高潮久久白浆| 欧美午夜精品久久久久久人妖| 伊人久久久久久久久久久久久| 国产区精品视频| 色婷婷综合成人| 中文字幕欧美专区| 孩xxxx性bbbb欧美| 国产亚洲欧洲黄色| 日韩国产高清污视频在线观看| 九九九久久国产免费| 国产成人免费av| 亚洲天堂成人在线| 久久视频在线免费观看| 日韩精品视频观看| 久久精品中文字幕| 欧美国产激情18| 日韩大片在线观看视频| 日韩精品在线观看网站| 92看片淫黄大片欧美看国产片| 狠狠色狠狠色综合日日小说| 91九色国产视频| 高清欧美一区二区三区| 成人亚洲欧美一区二区三区| 成人自拍性视频| 欧美精品videos| 久久天天躁狠狠躁夜夜爽蜜月| 日韩精品中文在线观看| 92看片淫黄大片看国产片| 91香蕉电影院| 啊v视频在线一区二区三区| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲香蕉伊综合在人在线视看| 亚洲香蕉av在线一区二区三区| 日本一欧美一欧美一亚洲视频| 欧美一级成年大片在线观看| 久久亚洲综合国产精品99麻豆精品福利| 精品在线小视频| 91亚洲国产成人久久精品网站| 国产偷国产偷亚洲清高网站| 欧美大尺度激情区在线播放| 成人黄色免费片| www.欧美精品| 日本最新高清不卡中文字幕| 欧美午夜精品久久久久久浪潮| 懂色av一区二区三区| 日韩在线精品视频| 国产精品欧美日韩| 精品magnet| 亚洲久久久久久久久久| 日韩欧美aⅴ综合网站发布| 九九久久综合网站| 国内精品一区二区三区| 国产美女91呻吟求| 欧美极品少妇xxxxⅹ免费视频| 欧美在线视频在线播放完整版免费观看| 欧美激情免费看| 亚洲精品中文字| 欧美国产视频日韩| 91社影院在线观看| 国产精品成久久久久三级|