




免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
如果你使用一面大鏡子作為沖浪板會發(fā)生什么?或許你會在較短的時(shí)間內(nèi)征服海浪,但是你肯定從內(nèi)心深處明白,這不是沖浪的正確選擇。同樣的道理也適用于PHP編程,盡管這樣的類比聽起來有一些古怪。我們經(jīng)常聽到有人試圖用一個周末多點(diǎn)的時(shí)間來學(xué)會PHP,但是請恕我直言,這是學(xué)習(xí)這門編程語言的一種非常糟糕的方式。為何說學(xué)習(xí)PHP的過程有別于任何其它語言?就其本質(zhì)而言,如果你掌握了以PHP語言“做事”的方式,那么在使用它時(shí)就會得心應(yīng)手,因此值得你去投入精力去了解這些方式。在PHP中,單純按照自己思路去解決問題往往會是一種錯誤的辦法。這并不是因?yàn)槟闶且粋€糟糕的程序員,而是因?yàn)槿绻阆雽懗龊玫目删S護(hù)性強(qiáng)的代碼,有些標(biāo)準(zhǔn)技巧是你必須要使用的。下面讓我們一起看一下你需要知道的10大技巧。1、如何正確的創(chuàng)建一個網(wǎng)站的Index頁面創(chuàng)建每一個網(wǎng)站時(shí),建立網(wǎng)站的index頁面是首要做的事情之一。如果你是一個PHP新手,在編寫index頁面時(shí)典型的做法是只對index頁面所需的內(nèi)容進(jìn)行編程,其它鏈接創(chuàng)建另一個頁面。不過,如果想學(xué)習(xí)一種更高效的方式來實(shí)現(xiàn)PHP編程,可以采用“index.php?page=home”模式,許多網(wǎng)站都在采用這種模式。2、使用Request Global Array抓取數(shù)據(jù)實(shí)際上我們沒有任何理由使用$_GET和$_POST數(shù)組來抓取數(shù)值。$_REQUEST這個全局?jǐn)?shù)組能夠讓你獲取一個get或form請求。因此,多數(shù)情況下解析數(shù)據(jù)的更高效代碼大體如下:1. $action=isset($_REQUESTaction)?$_REQUESTaction:0;3、利用var_dump進(jìn)行PHP代碼調(diào)試如果你在尋找php調(diào)試技術(shù),我必須說var_dump應(yīng)該是你要找的目標(biāo)。在顯示php信息方面這個命令可以滿足你的所有需要。而調(diào)試代碼的多數(shù)情況與得到PHP中的數(shù)值有關(guān)。4、PHP處理代碼邏輯,Smarty處理展現(xiàn)層Smarty是一個使用PHP寫出來的模板PHP模板引擎,是目前業(yè)界最著名的PHP模板引擎之一。它分離了邏輯代碼和外在的內(nèi)容,提供了一種易于管理和使用的方法,用來將原本與HTML代碼混雜在一起PHP代碼邏輯分離。簡單的講,目的就是要使PHP程序員同前端人員分離,使程序員改變程序的邏輯內(nèi)容不會影響到前端人員的頁面設(shè)計(jì),前端人員重新修改頁面不會影響到程序的程序邏輯,這在多人合作的項(xiàng)目中顯的尤為重要。5、的確需要使用全局?jǐn)?shù)值時(shí),創(chuàng)建一個Config文件動輒創(chuàng)建全局?jǐn)?shù)值是一種糟糕的做法,不過有時(shí)候?qū)嶋H情況的確又需要這么做。對于數(shù)據(jù)庫表或數(shù)據(jù)庫連接信息使用全局?jǐn)?shù)值是一個不錯的想法,但不要在你的PHP代碼中頻繁使用全局?jǐn)?shù)值。另外,更好的一種做法是把你的全局變量存放在一個config.php文件中。6、如果未定義,禁止訪問!如果你正確的創(chuàng)建了頁面,那么任何其他人沒有理由訪問index.php或home.php之外的index.php頁面。一旦index.php被訪問后,你可以通過獲得變量的方式來打開需要的頁面。你的index頁面應(yīng)該包含類似的以下代碼:1. define(yourPage,1);然后,其它頁面應(yīng)該包含:1. if(!defined(yourPage)die(AccessDenied);這么做的目的是防止直接訪問你的其它php頁面。這樣,任何試圖不通過index.php訪問其它網(wǎng)頁的人,將得到“訪問被拒絕”的消息。7、創(chuàng)建一個數(shù)據(jù)庫類如果你正在進(jìn)行數(shù)據(jù)庫編程(在PHP中非常常見的任務(wù)),一個不錯的想法是創(chuàng)建一個數(shù)據(jù)庫類來處理任何數(shù)據(jù)庫管理功能。示例代碼如下:1. publicfunctiondbExec($query) 2. 3. 4. 5. $result=$this-db-exec($query); 6. 7. if(PEAR:isError($result) 8. 9. errorRedirect($result-getMessage(),true); 10. 11. else 12. 13. return$result; 14. 15. 這個函數(shù)僅接收一個查詢語句并對其執(zhí)行。它還處理可能出現(xiàn)的任何錯誤。你還可以在這兒包含審核代碼,不過我更喜歡使用一個類似的審核函數(shù):1. /checksifargumentsgivenareintegervaluesnotlessthan0-hasmultiplearguments 2. 3. functionsanitizeInput() 4. 5. 6. 7. $numargs=func_num_args(); 8. 9. $arg_list=func_get_args(); 10. 11. for($i=0;$i$numargs;$i+) 12. 13. if(!is_numeric($arg_list$i)|$arg_list$idisplay(); 12. 13. break; 14. 15. .如上所示,我使用了一個消息類,然后開始進(jìn)行switch檢查。$message只是被類中的調(diào)用函數(shù)使用的一個對象。9、了解你的SQL語句,并總是對其審查(Sanitize)正如我以前所提到的,任何php網(wǎng)站中最重要的部分有99%的可能是數(shù)據(jù)庫。因此,你需要非常熟悉如何正確的使用sql。學(xué)會關(guān)聯(lián)表和更多高級技術(shù)。下面我將展示一個使用MySQL的函數(shù)示例,并使用本文第7條函數(shù)進(jìn)行審查。1. privatefunctiongetSentMessages($id) 2. 3. 4. 5. $this-util-sanitizeInput($id); 6. 7. $pm_table=$GLOBALSconfigprivateMsg; 8. 9. $users=$GLOBALSconfigusers; 10. 11. $sql=SELECTPM.*,USR.usernameasname_senderFROM$pm_tablePM,$usersUSR 12. 13. WHEREid_sender=$idANDsender_purge=FALSEANDUSR.id=PM.id_receiverANDis_read=TRUE 14. 15. ORDERBYdate_sentDESC; 16. 17. $result=$this-dbQueryAll($sql); 18. 19. return$result; 20. 21. 首先,我們對用戶輸入進(jìn)行檢查(通過一個GET變量傳遞消息id),然后我們執(zhí)行我們的SQL命令。注意這兒SQL的用法。你需要了解如何使用別名和關(guān)聯(lián)表。10、當(dāng)你只需要一個對象時(shí),使用單例模式在PHP中相當(dāng)常見的一種情形時(shí),我們只需要創(chuàng)建一個對象一次,然后在我們的整個程序中使用它。一個很好的例子就是smarty變量,一旦被初始化后就可以在任何地方使用。這種情形的一個很好實(shí)現(xiàn)方案就是單例模式。示例代碼如下:1. functionsmartyObject() 2. 3. 4. 5. if($GLOBALSconfigSmartyObj=0) 6. 7. 8. 9. $smarty=newSmartyGame(); 10. 11. $GLOBALSconfigSmartyObj=$smarty; 12. 13. 14. 15. else 16. 1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貧困戶扶貧購銷合同范本
- 轉(zhuǎn)讓舊油車出售合同范本
- 中小學(xué)班級消防安全課件
- 2025年解雇勞動合同所需材料有哪些
- 中小學(xué)交通宣傳課件
- 中學(xué)資助政策宣傳課件
- 2025混凝土運(yùn)輸合同協(xié)議書范本
- 2025鍍鋅鐵皮來料加工合同
- 2025物業(yè)綠化委托的合同書
- 電源系統(tǒng)培訓(xùn)課程更新工程師合同
- 糞便無害化處理廠建設(shè)方案
- 恢復(fù)執(zhí)行申請書
- 智慧的光芒普照每位學(xué)生 論文
- 銷售行業(yè)跑業(yè)務(wù)計(jì)劃書
- 政府采購詢價(jià)采購函報(bào)價(jià)單格式及論大學(xué)生寫作能力
- 建筑物拆除工程監(jiān)理實(shí)施細(xì)則
- LY/T 3256-2021全國優(yōu)勢喬木樹種(組)基本木材密度測定
- GB/T 25760-2010滾動軸承滾針和推力球組合軸承外形尺寸
- 特勞特-定位課件
- 口腔工藝管理基教學(xué)課件
- 真石漆施工外墻涂料工藝方案課件
評論
0/150
提交評論