亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        編寫(xiě)PHP高效代碼的經(jīng)驗(yàn)探討

        2012-02-08 13:02:08徐杰
        關(guān)鍵詞:程序數(shù)據(jù)庫(kù)效率

        徐杰

        (廣東郵電職業(yè)技術(shù)學(xué)院,廣東廣州 510630)

        隨著計(jì)算機(jī)網(wǎng)絡(luò)特別是Internet的不斷發(fā)展,對(duì)Web編程的需求越來(lái)越大,基于B/S結(jié)構(gòu)的軟件的應(yīng)用也越來(lái)越廣泛。PHP和大家所熟知的ASP一樣,是一種服務(wù)器端、跨平臺(tái)、HTML嵌入式的腳本語(yǔ)言,常用于Web編程,運(yùn)行于服務(wù)器端。

        PHP運(yùn)行于服務(wù)器端,用它編寫(xiě)的程序?qū)儆诜?wù)器程序,也就是我們常說(shuō)的動(dòng)態(tài)網(wǎng)頁(yè)程序,它的運(yùn)行速度與效率,直接影響著網(wǎng)站的運(yùn)作。那么如何編寫(xiě)高效的PHP代碼呢?

        1 影響PHP軟件運(yùn)行速度的各種因素

        首先了解一下影響PHP軟件運(yùn)行速度的各種因素,這樣才能夠做到有針對(duì)性地避免PHP中使用耗時(shí)的代碼。

        1)遞歸的使用。遞歸經(jīng)常會(huì)使程序?qū)崿F(xiàn)起來(lái)比較簡(jiǎn)單。但是,效率上會(huì)相對(duì)降低。因?yàn)檫f歸會(huì)對(duì)此的調(diào)用函數(shù)。在函數(shù)調(diào)用前,計(jì)算機(jī)會(huì)做一些初始化工作,這樣就會(huì)耗費(fèi)一些時(shí)間。如果遞歸的深度越大,效率隨之越低。

        2)在程序中進(jìn)行重復(fù)的、相同的、數(shù)據(jù)量比較大的字符操作。比如,查找、替換、保存等。

        3)過(guò)分地使用正則表達(dá)式。正則表達(dá)式在字符處理上可以說(shuō)用處非常強(qiáng)大,幾乎可以達(dá)到萬(wàn)能的程度。但是,不是在任何時(shí)候、任何情況下使用都是好的。應(yīng)該分清楚是否有需要為前提。就是因?yàn)檎齽t表達(dá)式功能的強(qiáng)大,使得它在效率上會(huì)相對(duì)于普通的字符處理函數(shù)效率低。就比如preg_replace和str_replace,在兩者都可以使用的前提下,當(dāng)然是使用str_replace效率高了。

        4) void eval(string code_str)函數(shù)的使用。eval()把code_str中的字符串當(dāng)作PHP代碼解析執(zhí)行。這個(gè)比直接寫(xiě)成PHP代碼+HTML代碼的形式效率低。比如代碼:

        比下面的效率更低。

        直接輸出HTML數(shù)據(jù)test

        5)使用多余的PHP語(yǔ)句或變量。比如在PHP中使用一些沒(méi)有意義和效果的語(yǔ)句,在輸出數(shù)據(jù)時(shí),總是先對(duì)數(shù)據(jù)進(jìn)行緩沖,然后再輸出。比如:

        6) 還有PHP 和數(shù)據(jù)庫(kù)調(diào)用的問(wèn)題。

        知道了影響PHP效率的因素之后,要在編寫(xiě)代碼的時(shí)候,加以注意,養(yǎng)成好的習(xí)慣,這樣高效的PHP代碼就寫(xiě)出來(lái)了。

        2 編寫(xiě)PHP程序時(shí)的幾點(diǎn)經(jīng)驗(yàn)

        根據(jù)上面的六點(diǎn),寫(xiě)PHP程序時(shí),需要注意:

        1)減少遞歸函數(shù)的使用。在一些確實(shí)很耗費(fèi)時(shí)間的遞歸處理里面,可以把遞歸轉(zhuǎn)換成非遞歸方式。比如最常見(jiàn)的層級(jí)結(jié)構(gòu)的數(shù)據(jù)。

        其中數(shù)組$data中的元素的標(biāo)號(hào)代表著它的上級(jí)的id號(hào)。displayBook函數(shù)就是把層級(jí)關(guān)系的數(shù)據(jù)從高到低逐級(jí)打印出來(lái)??梢园选鏳ata數(shù)組進(jìn)行結(jié)構(gòu)轉(zhuǎn)換,按照層級(jí)關(guān)系寫(xiě)成順序關(guān)系。比如:

        然后再輸出,就可以避免了遞歸。

        2)避免進(jìn)行重復(fù)的、相同的、數(shù)據(jù)量比較大的字符操作。如果是重復(fù)相同的操作,在第一次操作后,可以對(duì)數(shù)據(jù)操作的結(jié)果進(jìn)行數(shù)據(jù)緩沖。緩沖方式有文件緩沖方式和數(shù)據(jù)庫(kù)緩沖方式(后面詳細(xì)介紹)。

        3)在可以使用正則或普通字符操作達(dá)到相同效果的情況下,則選擇使用普通字符操作。如上面提到的str_replace代替preg_replace。

        4)避免使用無(wú)用的PHP語(yǔ)句,能夠直接輸出的數(shù)據(jù),則直接輸出,不要添加沒(méi)必要的PHP數(shù)據(jù)保存。

        還有數(shù)據(jù)庫(kù)操作優(yōu)化,適當(dāng)?shù)奶砑铀饕⒈苊馊牟檎?,或?yōu)化全文查找,優(yōu)化SQL語(yǔ)句,提高執(zhí)行效率。

        3 提高PHP執(zhí)行效率的技巧

        上面提到的是一些影響PHP運(yùn)行效率的一些因素及其解決辦法。下面介紹提高PHP執(zhí)行效率的一些技巧——數(shù)據(jù)緩沖。數(shù)據(jù)緩沖有文件緩沖和數(shù)據(jù)庫(kù)緩沖兩種。

        1)文件緩沖

        文件緩沖,是把最終數(shù)據(jù)保存在文件里面,讓程序直接讀取文件的內(nèi)容然后顯示出來(lái)或者拿來(lái)使用。比如現(xiàn)在的常見(jiàn)的靜態(tài)頁(yè),是把動(dòng)態(tài)PHP網(wǎng)頁(yè)訪(fǎng)問(wèn)后的結(jié)果數(shù)據(jù)保存在一個(gè)文件里面,在以后的訪(fǎng)問(wèn)里,就不需要再訪(fǎng)問(wèn)這個(gè)PHP頁(yè)面,而是直接訪(fǎng)問(wèn)生成的緩沖文件。這樣,在訪(fǎng)問(wèn)中,對(duì)服務(wù)器來(lái)說(shuō),只是消耗了帶寬,不需要消耗PHP的執(zhí)行時(shí)間,從而大大的提高了效率。不過(guò)這個(gè)方法有個(gè)缺點(diǎn),就是需要耗費(fèi)比較大的磁盤(pán)空間。一般的實(shí)現(xiàn)方法是,把PHP執(zhí)行后的數(shù)據(jù),先不輸出,而是保存在一個(gè)變量里面,然后用讀寫(xiě)文件的方式,寫(xiě)到一個(gè)文件里面。PHP編譯型模板也是對(duì)這種技巧的一個(gè)很好的應(yīng)用。

        2)數(shù)據(jù)庫(kù)緩沖

        數(shù)據(jù)庫(kù)緩沖,是把數(shù)據(jù)保存在數(shù)據(jù)庫(kù)里面。這些數(shù)據(jù)可能是從數(shù)據(jù)庫(kù)獲取,而且獲取數(shù)據(jù)需要耗費(fèi)比較多的時(shí)間,數(shù)據(jù)內(nèi)容是長(zhǎng)時(shí)間不會(huì)改變,或者這些數(shù)據(jù)會(huì)以各種方式在不同的地方調(diào)用,這樣就需要把這些數(shù)據(jù)作數(shù)據(jù)庫(kù)緩沖。數(shù)據(jù)的形式可以是字符串、數(shù)組。如果是數(shù)組,需要用serialize()函數(shù)轉(zhuǎn)換成字符串,然后保存,提取數(shù)據(jù)的時(shí)候,要用unserialize()函數(shù)對(duì)其進(jìn)行還原。

        如 www.phparticle.net開(kāi)發(fā)的phpArticle v2.1.1是提高PHP代碼效率的一個(gè)很成功的例子。而且phparticlev2.1.1是開(kāi)源的,可以閱讀源代碼來(lái)更好地理解和掌握上面提到的方法。

        4 結(jié)束語(yǔ)

        上面是做PHP開(kāi)發(fā)時(shí)總結(jié)的一些經(jīng)驗(yàn)和方法,希望能夠?qū)Υ蠹矣袔椭?/p>

        [1]陸昌輝,熊帥,劉瑞濤.PHP WEB開(kāi)發(fā)快速入門(mén)及實(shí)例精選[M].北京:電子工業(yè)出版社,2008.

        [2]陳營(yíng)輝.PHP網(wǎng)絡(luò)編程從入門(mén)到精通[M].北京:清華大學(xué)出版社,2007.

        [3]馮祖洪.用PHP訪(fǎng)問(wèn)Mysql數(shù)據(jù)庫(kù)的方法[J].現(xiàn)代電子技術(shù),2002,(6).

        [4]付俊英.基于PHP的Web數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)[J].計(jì)算機(jī)與信息技術(shù),2001,(9).

        [5]黃國(guó)輝.PHP聊天室技術(shù)[J].計(jì)算機(jī)與信息技術(shù),2002,(8).

        [6]賈素來(lái).使用PHP和MySQL開(kāi)發(fā)動(dòng)態(tài)網(wǎng)站[J].大眾科技,2011,(3).

        猜你喜歡
        程序數(shù)據(jù)庫(kù)效率
        提升朗讀教學(xué)效率的幾點(diǎn)思考
        甘肅教育(2020年14期)2020-09-11 07:57:42
        試論我國(guó)未決羈押程序的立法完善
        “程序猿”的生活什么樣
        英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        創(chuàng)衛(wèi)暗訪(fǎng)程序有待改進(jìn)
        跟蹤導(dǎo)練(一)2
        久久这黄色精品免费久 | 亚洲精品成人网站在线播放| 日本阿v网站在线观看中文 | 亚洲中文字幕久久在线| 啦啦啦中文在线观看日本| 激情97综合亚洲色婷婷五| 少妇特殊按摩高潮惨叫无码| 久久91精品国产一区二区| 国产成人精品日本亚洲专区61| 成人无码一区二区三区网站| 99国产精品无码专区| 国产av一级二级三级| 国产亚洲成av人片在线观看| 国产香蕉97碰碰视频va碰碰看 | 欧美怡春院一区二区三区| 亚洲精品久久久久久久久av无码| 亚洲国产精品国语在线| 亚洲精品女人天堂av麻| 噜噜噜噜私人影院| 中文字幕人妻丝袜美腿乱| 偷拍熟女亚洲另类| 国产一区二区三区色哟哟| 亚洲av无码专区在线播放| 岛国成人在线| 白白色福利视频在线观看| 欧美颜射内射中出口爆在线| 99久久亚洲精品无码毛片| 久久久99精品视频| 久久本道久久综合伊人| 中文字幕无线码| 在线观看网址你懂的| 精品日韩一区二区三区av| 人人鲁人人莫人人爱精品| 国产一起色一起爱| 日本在线中文字幕一区| 午夜福利理论片在线观看播放 | 亚洲一区二区在线视频,| 日本污ww视频网站| 欧洲-级毛片内射| 国产高清亚洲精品视频| 久久久亚洲熟妇熟女av|