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

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

關于PHP開發的9條建議

2024-04-25 20:40:03
字體:
來源:轉載
供稿:網友

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

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()這個函數,下面的代碼可能會給你一個直觀的感受:

<?php

$authors = 'Chris & Sean';

if (strpos($authors, 'Chris')) {

echo 'Chris is an author.';

} else {

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,但是在這種情況之下我們該怎么處理呢?我們其實可以這樣的:

<?php

if (strpos($authors, 'Chris') !== FALSE) {

echo 'Chris is an author.';

} else {

echo 'Chris is not an author.';

}

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

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 --;

你甚至可以這樣:

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

else $height ++;

if ($frodo != 'dead')

echo 'Gosh darnit, roll again Sauron';

foreach ($kill as $count)

echo 'Legolas strikes again, that makes' . $count . 'for me!';

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

5.多用str_replace()

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

str_replace()

ereg_replace()

preg_replace()

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

6.使用三元運算符

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

$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()的五倍左右,所以:

<?php

if (isset($username[5])) {

// The username is at least six characters long.

}

if (strlen($username) >= 6) {

// The username is at least six characters long.

}

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美孕妇毛茸茸xxxx| 国产福利精品视频| 成人亚洲激情网| 国产偷国产偷亚洲清高网站| 国产精品美女主播在线观看纯欲| 亚洲国产欧美一区二区三区久久| 日本精品久久中文字幕佐佐木| 国产精品黄视频| 夜夜躁日日躁狠狠久久88av| 97超级碰碰碰久久久| 国产欧美精品va在线观看| 精品国产乱码久久久久久虫虫漫画| 国产精品电影在线观看| 欧美日韩另类视频| 亚洲va男人天堂| 亚洲区中文字幕| 日韩中文字幕久久| 成人黄色在线观看| 成人激情av在线| 亚洲欧洲国产精品| 国自产精品手机在线观看视频| 欧美在线一区二区视频| 中文字幕亚洲天堂| 欧美性猛交xxxx富婆| 国产精品扒开腿做爽爽爽的视频| 国产精品稀缺呦系列在线| 欧美黄色性视频| 91成人免费观看网站| 日韩av免费一区| 国产精品久久久久久久午夜| 久色乳综合思思在线视频| 国产精品天天狠天天看| 亚洲理论在线a中文字幕| 国产精品视频在线播放| 美女视频黄免费的亚洲男人天堂| 91高清视频免费| 久久福利视频网| 91免费精品国偷自产在线| 丁香五六月婷婷久久激情| 日韩精品一区二区三区第95| 最近更新的2019中文字幕| 91在线|亚洲| 国产精品永久免费| 亚洲理论电影网| 国产啪精品视频网站| 国产精品麻豆va在线播放| 国产一区二区三区在线观看视频| 热99精品里视频精品| 欧美亚洲成人精品| 亚洲精品自拍偷拍| 亚洲成人aaa| 成人黄色在线免费| 欧美午夜精品伦理| 亚洲自拍偷拍视频| 91久久国产精品| 一本色道久久综合狠狠躁篇的优点| 欧美黑人国产人伦爽爽爽| 精品久久久久人成| 亚洲欧洲日韩国产| 国产精品女人网站| 国产一区二区三区三区在线观看| 欧美一区二区三区免费观看| 日韩女优人人人人射在线视频| 亚洲视频在线播放| 久久男人资源视频| 国产精品久久久久久久天堂| 欧美激情免费观看| 国产热re99久久6国产精品| 欧美自拍视频在线| 日韩亚洲欧美中文高清在线| 久久精品电影网| 国产在线播放不卡| 国产精品电影网| 欧美成人精品xxx| 欧美专区日韩视频| 8090理伦午夜在线电影| 欧美性videos高清精品| 中文字幕精品影院| 欧美在线观看一区二区三区| 欧美性生交大片免网| 欧美高清在线视频观看不卡| 亚洲天堂成人在线| 欧美日韩综合视频网址| 国产精品99久久99久久久二8| 日韩专区中文字幕| 国产精品69精品一区二区三区| 欧美精品videos性欧美| 91视频国产一区| 日韩中文字幕免费看| 亚洲欧美国产va在线影院| 精品国产户外野外| 日韩电影中文字幕一区| 亚洲国产一区二区三区四区| 亚洲第一黄色网| 国产精品丝袜视频| 亚洲欧美国产一区二区三区| 欧美黑人一级爽快片淫片高清| 亚洲欧洲日产国产网站| 日韩女优在线播放| 色偷偷888欧美精品久久久| 一区二区av在线| 日韩视频在线免费观看| 日本久久亚洲电影| 久久精品中文字幕电影| 2019中文字幕免费视频| 欧美激情亚洲综合一区| 亚洲精品一区中文| 亚洲激情在线观看视频免费| 欧美午夜女人视频在线| 狠狠操狠狠色综合网| 国产日韩欧美视频| 欧美日韩一区二区三区在线免费观看| 日韩免费在线视频| 91精品免费视频| 亚洲高清一区二| 久久精品免费电影| 色悠悠久久久久| 精品露脸国产偷人在视频| 亚洲精品720p| 欧美激情中文字幕乱码免费| 26uuu亚洲国产精品| 国产成人精品网站| 国产又爽又黄的激情精品视频| 日韩国产高清污视频在线观看| 欧美一级大片视频| 高清一区二区三区日本久| 欧美黑人国产人伦爽爽爽| 奇门遁甲1982国语版免费观看高清| 国产在线拍偷自揄拍精品| 国产一区二区三区毛片| 亚洲va国产va天堂va久久| 欧美在线一区二区三区四| 亚洲成色999久久网站| 91在线视频成人| 亚洲色图欧美制服丝袜另类第一页| 欧美精品aaa| 久久久久久国产精品美女| 欧美日韩国产综合新一区| 国产91热爆ts人妖在线| 欧美中文字幕在线播放| 亚洲成av人片在线观看香蕉| 亚洲欧美日韩精品久久亚洲区| 欧美激情中文字幕在线| 亚洲欧美日韩天堂一区二区| 欧美日韩中文字幕日韩欧美| 国产日韩欧美夫妻视频在线观看| xvideos国产精品| 国产精品视频xxx| 国产精品日韩在线观看| 欧美一级视频免费在线观看| 色老头一区二区三区| 日本不卡高字幕在线2019| 亚洲毛片一区二区| 亚洲成人久久久| 97久久国产精品| 日韩视频免费大全中文字幕| 亚洲香蕉成人av网站在线观看| 欧美天堂在线观看| 自拍偷拍亚洲在线| 狠狠色狠狠色综合日日小说| 热久久99这里有精品| 亚洲日本aⅴ片在线观看香蕉| 久久综合国产精品台湾中文娱乐网| 视频在线观看99|