国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP新手最佳實踐

willin / 3533人閱讀

不要使用mysql_*系列函數,查詢時盡量對sql語句進行預處理

PHP官方目前已經將此系列函數標記為棄用狀態,添加PHP對mysql的支持,編譯時使用下面的參數

 --enable-mysqlnd
 --with-pdo-mysql 
 --with-mysqli 
 --with-mysql=mysqlnd
  

mysql_*系列函數不支持 預處理語句,事務,存儲過程,異步查詢,多條語句查詢,
這也是強烈建議使用pdo_mysql或者mysqli的原因.
pdo是PHP的數據數據抽象層,為了擴展升級考慮,最好使用pdo_mysql

使用pdo_mysql擴展,查詢前進行sql語句預處理,不僅能很有效的避免sql注入,同時一個查詢如果被執行多次,那么只需要給預處理的sql語句重新綁定參數,大大提升查詢的性能,降低資源(cpu)消耗

不要在純PHP文件的最后結尾中使用閉合標簽

good style:



bad style:


在最后一行加上閉合標簽,很可能會由于不小心,在閉合標簽之后加入空白字符,比如換行,示例如下:


//here ,some of whitespace

那么假設此文件包含在另外一個文件中,且在上述代碼之后使用header函數輸出,那么就會報錯,這種錯誤很難被發現
只有當你在模板文件中才會需要閉合標簽
如下

了解一些web安全方面的知識,如sql注入,xss攻擊,csrf攻擊等等,永遠不要相信用戶的輸入

知道如何避免上述提到的安全問題
比如使用pdo_msyql預處理語句,防范sql注入
比如對用戶輸入進行過濾,防范xss攻擊等等
始終記著對用戶輸入進行驗證,即使客戶端使用js對用戶數據進行驗證了,也不能取代服務器端的驗證,客戶端js驗證是可以繞過的
具體請查看php手冊安全部分內容

  

對于用戶輸入的數據進行驗證和過濾,不要忘記PHP內置的filter_*,盡可能的使用他們了解他們
http://cn2.php.net/manual/en/book.filter.php

比如驗證一個郵件地址是否合法

if(!filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) {
    //Email is invalid. Show the user an error message.
}
不要編寫重復代碼,保持代碼精簡

即針對同一功能或者業務的代碼,盡可能只有一個實現,新手容易犯的錯誤就是喜歡copy,copy是大忌
比較好的做法就是快速完成需求和功能,然后進行重構,壓縮減少代碼量,重構的過程會讓你的代碼更加精簡

字節碼緩存,為PHP開啟apc或者opcode擴展

開啟apc或者opcode對性能的提升很大,你需要做的,僅僅是編譯安裝一個額外的擴展
opcode在php-5.5集成到核心代碼中,編譯時 --enable-opcode 即可

編碼統一使用utf8

項目文件統一使用utf8編碼

html頁面meta部分


數據庫表使用utf8編碼,鏈接數據庫設定編碼

$db = new PDO("mysql:host=localhost;dbname=database;charset=utf8", "root", "");
合理使用數據庫字段類型,了解一些數據庫設計范式

合理使用字段類型,不僅能減少磁盤使用量,也能提升查詢性能

其他一些建議

不要使用正則去解析html,使用 Document Object Model

使用var_dump而不是echo,因為var_dump輸出的信息更多,調式的時候很有用

使用緩存,reids,memcache等等

線上環境關閉錯誤信息提示###

post提交數據處理結束后,使用header重定向,避免用戶刷新提交垃圾重復數據

不要在循環中執行sql語句(假設是必須的,那么也最好在循環外使用預處理語句)

對密碼進行hash加密,PHP-5.5內置hash加密函數 password_hash,可查看手冊

上傳圖片不要存儲在數據庫里,上傳圖片時裁剪圖片節省存儲空間

良好的注釋文檔,保持php代碼風格的一致性(比如縮進一會兒使用tab,一會兒使用space就是特別差的習慣)
良好的代碼code style,請參考 PHP-FIG 標準,PHP-FIG是php框架代碼規范的非官方組織,有很多框架遵循此編碼規范

盡可能多的使用開源的解決方案,避免重復造輪子,在自己寫代碼完成一個功能前,先去搜索引擎或者技術網站查找是否已經有相關的解決方案,

避免吹毛求疵,比如到底是使用"還是"號的性能比較好,如果你使用了opcode擴展,兩者之間是沒有什么區別的,保持風格一致即可

使用版本控制工具維護你的代碼,現在流行的是git

學習一些設計模式,比如單例模式,工廠模式,知道他們的應用場景,知道應用場景比知道他們寫他們更重要

文中如有紕漏,錯誤之處,請指出
對于后續中列出的其他建議,如果有人覺得需要詳細展開,請留言。
參考或者原文出處:PHP – Best Practises

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/20714.html

相關文章

  • 2017年2月份前端資源分享

    平日學習接觸過的網站積累,以每月的形式發布。2017年以前看這個網址:http://www.kancloud.cn/jsfron... 1. Javascript 前端生成好看的二維碼 十大經典排序算法(帶動圖演示) 為什么知乎前端圈普遍認為H5游戲和H5展示的JSer 個人整理和封裝的YU.js庫|中文詳細注釋|供新手學習使用 擴展JavaScript語法記錄 - 掉坑初期工具 漢字拼音轉換...

    lily_wang 評論0 收藏0
  • 2017年2月份前端資源分享

    平日學習接觸過的網站積累,以每月的形式發布。2017年以前看這個網址:http://www.kancloud.cn/jsfron... 1. Javascript 前端生成好看的二維碼 十大經典排序算法(帶動圖演示) 為什么知乎前端圈普遍認為H5游戲和H5展示的JSer 個人整理和封裝的YU.js庫|中文詳細注釋|供新手學習使用 擴展JavaScript語法記錄 - 掉坑初期工具 漢字拼音轉換...

    chengjianhua 評論0 收藏0
  • 2017年2月份前端資源分享

    平日學習接觸過的網站積累,以每月的形式發布。2017年以前看這個網址:http://www.kancloud.cn/jsfron... 1. Javascript 前端生成好看的二維碼 十大經典排序算法(帶動圖演示) 為什么知乎前端圈普遍認為H5游戲和H5展示的JSer 個人整理和封裝的YU.js庫|中文詳細注釋|供新手學習使用 擴展JavaScript語法記錄 - 掉坑初期工具 漢字拼音轉換...

    Anonymous1 評論0 收藏0
  • 2017年2月份前端資源分享

    平日學習接觸過的網站積累,以每月的形式發布。2017年以前看這個網址:http://www.kancloud.cn/jsfron... 1. Javascript 前端生成好看的二維碼 十大經典排序算法(帶動圖演示) 為什么知乎前端圈普遍認為H5游戲和H5展示的JSer 個人整理和封裝的YU.js庫|中文詳細注釋|供新手學習使用 擴展JavaScript語法記錄 - 掉坑初期工具 漢字拼音轉換...

    dreamtecher 評論0 收藏0
  • PHP / Laravel API 開發推薦閱讀清單

    showImg(https://segmentfault.com/img/bV6aHV?w=1280&h=800); 社區優秀文章 Laravel 5.5+passport 放棄 dingo 開發 API 實戰,讓 API 開發更省心 - 自造車輪。 API 文檔神器 Swagger 介紹及在 PHP 項目中使用 - API 文檔撰寫方案 推薦 Laravel API 項目必須使用的 8 個...

    shmily 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<