本文目錄一覽:
- 1、php怎樣加速視頻上傳?讓視頻可以加快上傳速度的?最好可以用代碼來實現。
- 2、PHP語言需要避免的誤區
- 3、如何對PHP代碼進行優化以提高網站訪問速度
- 4、php是解釋語言,有什麼方法提高php的運行速度
- 5、PHP如何加速到最快
php怎樣加速視頻上傳?讓視頻可以加快上傳速度的?最好可以用代碼來實現。
視頻上傳是客戶端的問題,PHP是服務器端的技術。
如果是服務器端與其它服務器的網站連接,速度最快最易用的類庫是CURL,可以直接用PHP語句做到和其它服務器進行HTTP會話,包括登錄網站,POST信息等等
PHP語言需要避免的誤區
PHP語言需要避免的誤區
PHP是一種非常流行的開源服務器端腳本語言,你在萬維網看到的大多數網站都是使用php開發的。但是,你大概很奇怪的注意到有少部分的人發誓要離php 遠遠的。但是令人更奇怪的是或者很震驚的說他們不用php是因為一些被證實的語言缺點。他們決定不用php,是因為誤解。那麼誤解是什麼呢?和我一起來看看吧!
1. PHP是一種面向對象語言,但面向對象並不徹底
這完全不對。所有認為php不是徹底面向對象的程序員,尤其是Java程序員,都需要上一個PHP的基礎培訓;他們會發現PHP中大量面向對象的特性。例如:接口、方法、抽象類等等。我同意早期的PHP版本確實不支持太多面向對象的特性,但PHP5已經有強大的面向對象支持。而且,你一定想不到編碼在 PHP中會變得如此簡單,那是因為PHP和面向對象結合的原因。
所以,消除這個誤解吧。
2.PHP無法實現特定功能
我很清楚這種表述很含糊,但是我不能想出任何更好的說法。這是一個很含糊的誤解,開發人員認為PHP不能幫助他們實現一些諸如內存訪問的功能或者一些 PHP主要發行版沒有提供支持的功能。但事實是PHP是一種可擴展的語言,所以你需要做的’是用C或者C++編碼,然後創建對應的擴展。
其實,你根本不需要自己動手去創建擴展,因為這裡已經有數以百計的可用擴展。你唯一需要做的就是去尋找它們。
3.PHP 是不安全的
開發者對PHP的另外一個誤解就是PHP網站和應用是不安全的。但是,為什麼你會希望它在默認情況下是安全,為什麼不編寫安全的代碼? 我知道這裡一直存在很多不安全的PHP代碼,因為最初的學習曲線是簡單的而且很容易上手。所以,作為一個開發者,你需要使它儘可能的安全。
.Net可以幫助你在默認情況下是安全的,相比之下PHP確實缺少很多。但是如果你是一個訓練有素的程序員,那麼你其實不要默認情況的安全幫助。Include通常是安全的,但是你需要要小心。如果它們的路徑是動態生成的,對指令的透徹理解可以幫助你讓代碼更安全。
4. 它不能適應大型應用
大型複雜應用需要建立在自身可靠和高性能的語言之上,這是PHP在一定程度上所沒有的。但是,如果你設計和開發的應用程序架構穩定,為什麼你會對它的性能和可擴展性有疑問呢?
事實上一些頂尖網站,如Facebook、維基百科和雅虎等等,都是基於PHP構建的,就像我們所想的那樣,這些巨型網站都工作的很好。
5. PHP只能用於網站開發
這也是一個誤解,儘管看起來它有點合乎邏輯,因為PHP是網站開發中最常見的語言。但也有一些被稱為命令行界面的東西,這可以確保你的PHP應用程序可以在Web服務器之外運行。
你可能不相信,但即使是那些很大程度上取決於CPU能力的應用程序,也可以用PHP開發的,使用PHP CLI來運行。
更重要的是,如果你想使用PHP開發桌面應用程序,不用擔心,使用Windows特定擴展你可以做到這一點。
6.開發過程慢
這是一直廣為流傳的誤解。我不知道起源於何處?這個流言可能來自於曾經一個時期php代碼很亂並且代碼中四處充斥着Mysql語句(他們以此為反例,但是實際上我們都不這樣用)。問題是為什麼這樣開發過程就慢了?當大量的php框架出現時,可以大大的加速開發的過程。毋庸置疑,你可以在短時間內開發出很大的程序,不論它有多麼的複雜。所以,你用php開發一點都不慢,特別是當你使用php框架的時候。
7.專業開發人員不使用PHP
PHP是針對初學者的,它是為那些不是認認真真做開發的人設計的。這些說法都和PHP的使用有關。這只是一種誤解,認同它沒有任何意義。這裡有如此多的網絡應用,包括一些大型的,都是使用PHP構建的。可以想象這些說法是多麼不正確。
8. 性能問題
這是一個棘手問題。這不是一個誤解。和硬幣有兩個面一樣,這個問題也是兩方面的。事實上到處充斥着垃圾代碼,隱式轉換、不適用的模塊、缺少操作符重載等等都能影響一個php應用的性能。但是這個依賴於你是不是有足夠的能力去用好這個語言,用它編寫穩定地、快速地應用。
性能是由你設計的架構和你寫的代碼來決定的!
9. 便宜沒好貨
這條貌似在邏輯上很站得住腳,但是用到php上那就是完全是誤解了!事實上,php的最大優勢就是他的免費和開源,這意味着大多數提供應用開發服務的開發 者必須都精通它。雖然免費開源會帶來一定問題,但是這也為了使用他們服務的客戶提供成本優勢。與商業開發語言相比較,php的開發成本比價低,但是這並非 意味着它的質量值得懷疑。和正確的開發者一起工作,可以獲得更高性能的php應用。
10. PHP言過其實
真是這樣么?你隨口瞎說的吧。我不認為這樣,還有很多的開發者也都不這樣認為。
這不是所有php謊言的終結者。隨着php語言不斷的發展,變得越來與強大,誤解也會跟着增長的。但請不要被他們忽悠了。多讀,多問,自己動動手,然後你就知道,是不是真的了。
;
如何對PHP代碼進行優化以提高網站訪問速度
一、不要將整個頁面放到一個table中雖然現在已經很少人使用table來布局,但我覺得還是有必要提一下,原來有些站長為了追求頁面的整齊劃一,將整個網站頁面放入到一個table中,使用表格來布局,如果這樣做顯然會拖慢整個網頁的加載速度。因為table中的內容必須要等到網頁中所有內容全部加載完才會顯示出來,所以如果其中一部分加載很慢或加載不了,勢必會造成網頁的加載變慢。最好是使用div+css的方式來布局頁面,如果要使用table也不要將所有網頁內容加入到一個table中。 一.記得幫頁面減肥我們瀏覽網頁實際上是將虛擬主機中的網頁內容下載到本地硬盤,再用瀏覽器解釋查看的。下載網頁的快慢在顯示速度上佔了很大比重,所以,網頁本身 所佔的空間越小,那麼瀏覽速度就會越快。這就要求在做網頁的時候遵循一切從簡的原則,如:不要使用太大的Flash動畫、圖片等資源。乾淨、簡潔的頁面會 給人一種思路明朗的感覺。 二、PHP等文件訪問通過.js調用。 如果在靜態頁面中需要嵌入動態數據,我們在進行PHP網站優化和其他方法優化時應該注意的是,如果你要在靜態的HTML頁面里嵌入動態的數據,而這些動態的數據是由PHP程序來提供的話,這樣的話,每次有一個人訪問你的網站,服務器就要執行並處理一次PHP文件,從數據庫抽取相應的數據,再輸出到網頁,如果同時有幾萬人訪問,無疑會是服務器不堪重負。 所以最好是將數據動態生成到.js文件中,然後再首頁通過 SCRIPT /SCRIPT 這樣的代碼來調用js文件。如此一來,動態數據的顯示就在客戶端的瀏覽器中進行,大大降低了服務器資源的消耗,網站速度自然會加快。 三.使用iframe嵌套廣告代碼。 如果你在網站上插入一些廣告,又不想因此拖慢網站速度,那使用iframe比較好。只要將這些廣告代碼整理到一個獨立的頁面中,使用iframe調用即可。代碼格式如下: 四、盡量使用靜態頁面和上面說的道理一樣,大家都知道,PHP等程序實現了網站的動態交互,如留言板等。但這類程序必須先由服務器執行處理,再生成靜態頁面,然後用戶才能看到。這就必須小高服務器資源。如果網站訪問人數多,服務器配置又不夠好,很容易就造成網站速度緩慢甚至無法訪問。所以如果沒有必要,請盡量使用靜態頁面。 五.網站統計代碼應獨立放置在網頁的最下方之所以放置最下方是因為如果網站統計代碼出現故障無妨加載時,會有幾十毫秒的延遲,這時如果你將統計代碼放置網頁前面,就會影響網站加載速度。導致頁面很長時間才能訪問。
php是解釋語言,有什麼方法提高php的運行速度
代碼優化
代碼優化不僅僅是寫出乾淨和清晰的代碼,而是對代碼進行一定的簡化。可以使用Zend Optimizer來自動幫助完成這些繁雜的工作。Zend Optimizer可以從Zend Technologies的網站免費得到,但必須同意它的許可約定,因為它不是以GPL方式發行的。它的原理很簡單,即通過檢測Zend引擎產生的中間代碼,並對它進行優化,從而獲得更高的執行速度。
在使用了Zend Optimizer後,複雜的PHP源程序的執行效率馬上會得到顯著提高,缺點是優化後的代碼可讀性下降,給代碼修改帶來困難。
Zend Optimizer的安裝方法非常簡單,只要根據用戶使用的平台,下載相關的預編譯版本,把下面2行代碼加入到php.ini文件中,重新啟動Web 服務器就行了:
zend_optimizer.optimization_level=15
zend_extension=″/path/to/ZendOptimizer.so″
zend_loader.enable=Off
額外增加的第三行代碼是可選的,因為禁用zend_loader將會使優化速度更快。需要注意的是,只有在不使用Zend Encoder Runtime的時候,才可以禁用zend_loader。
使用緩存
如果PHP程序的規模很大,那麼提高速度的辦法就是使用緩存。現在已經有許多緩存方案可供選擇,其中包括Zend Cache、APC和Afterburner Cache。
上面這幾種都是“緩存模塊”(caching modules)。第一次調用PHP文件時,緩存模塊從PHP源代碼生成一些中間代碼,並把這些中間代碼存儲在Web服務器的內存中。以後再調用這些文件時,就可以直接使用內存中“編譯”過的代碼。這種方法確實能夠改善應用的性能,因為它使得磁盤訪問量減低到了最少的程度(代碼已經讀取和解析),代碼直接在內存中運行,使得服務器響應請求的速度大大提高。
當然,緩存模塊還會監視PHP源文件的變化,必要時會重新緩存頁面,從而防止用戶得到的頁面仍舊由過時的PHP代碼生成。由於緩存模塊能夠明顯地降低服務器的負載,提高PHP應用的響應效率,因此它們非常適合於負載較大的網站使用。
Zend Cache是Zend Technologies公司開發的商業軟件。在第一次運行後,PHP頁面的運行速度立刻會有很大的提高,服務器的空閑資源也更多了。缺點是它不是免費的,但性價比還是很高的。
Afterburner Cache是Bware Technologies公司開發的免費緩存模塊。功能與Zend Cache基本一樣,但提高性能方面比不上Zend Cache。
APC(Alternative PHP Cache)是由Community Connect公司開發的另一種免費緩存模塊,目前版本是2.0.4,可以從獲得。對於產品應用來說,它的性能很穩定,而且也能在很大程度上提高響應請求的速度。
壓縮網頁內容
影響站點的訪問速度還有1個重要因素,那就是下載速度。解決的辦法就是壓縮網頁內容。對於純文本內容而言,HTTP壓縮技術可壓縮至原大小的40%以下,從而提供60%以上的數據傳輸節約。雖然Web服務器會因為壓縮導致CPU佔用的略微上升,但可以節約大量用於傳輸的網絡IO。
根據IETF規範,大部分瀏覽器都支持使用gzip壓縮算法進行內容壓縮。也就是說,可以先用gzip壓縮網頁內容,然後發送到客戶端瀏覽器,瀏覽器在接收的時候會自動解壓數據,再顯示頁面。這個過程對用戶來說,是完全透明的。同樣,壓縮Web頁面的內容也有不同的方法。
Mod_gzip是1種開放源代碼的、標準的Apache模塊,也叫互聯網內容加速模塊。可以將它和Apache一起編譯,也可以作為DSO使用。相對於普通的瀏覽過程,它可以節省40%左右的流量。Mod_gzip不僅可以壓縮靜態的內容,如HTML、XML,而且對動態生成的,包括SQL、Java、WML、VRML等產生的內容,在服務器端進行實時壓縮並傳輸,其壓縮效率驚人,一般都為60%~85%。
壓縮動態網頁的內容,還可以使用class.gzip來對.php文件編碼,class.gzip通過在PHP腳本的開頭和結尾調用它的一些函數來壓縮網頁內容。如果整個站點都需要這樣的壓縮,可以在php.ini文件中的auto_prepend和auto_append中調用這些函數,但是會佔用一定的系統開銷。
PHP4.0.4推出了1種新的輸出緩衝的處理手段—ob_gzhandler,它的作用和class.gzip完全一樣,區別是可以直接把它加到php.ini 文件中,語法如下:
output_handler = ob_gzhandler;
這樣將激活PHP的輸出緩衝功能,並在發送內容前進行壓縮。如果不想在這裡設置,只在需要的地方才改變這個默認設置(不壓縮),只要在需要壓縮的PHP源程序目錄中,修改一下.htaccess文件就行了,語法如下:
php_value output_handler ob_gzhandler
或者直接在PHP代碼中調用它:
ob_start(″ob_gzhandler″);
輸出緩衝的效果確實很理想,並且不會為服務器帶來額外的系統開銷。要注意的一點是Netscape Communicator不支持圖像的壓縮。因此除非知道訪問者都使用Internet Explorer,否則必須禁止壓縮jpeg和gif圖象。
其它技巧
在編程時,使用一些小技巧也可以加快PHP的運行速度:
(1)用i+=1代替i=i+1,既符合c/c++的習慣,效率相對還更高。
(2)儘可能使用PHP內部函數。
(3)能使用單引號字符串時,盡量使用單引號字符串。單引號字符串的效率要高於雙引號字符串。
(4)用foreach代替while遍曆數組,foreach的效率明顯高於while循環,而且不需要調用reset函數。
使用第四個方法時要注意代碼的嚴謹性、安全性、不是所有的程序都適合用第四種方式優化。
PHP如何加速到最快
網站的速度 一般 是從架構 , 數據庫, php代碼方面優化的。
而php本身沒什麼優化的,只要按照php的編碼 規範來寫就ok了;
還有就是做好緩存;
另外就是注意 sql 語句裡面的一些 小細節了,原則是:最先出現的條件,一定是過濾和排除掉更多結果的條件;第二出現的次之;以此類推。
例如 有個這樣的表
字段a 字段b 字段c
1 7 11
2 8 10
3 9 13
1,SELECT * FROM table WHERE a’0’ AND b’1’ ORDER BY c LIMIT 10;
2,SELECT * FROM table WHERE b’1’ AND a’0’ ORDER BY c LIMIT 10;
1 和 2 結果是相同的但是 查詢速度就大不相同,由於 表中 b 字段的數據 大部分 都是大於 1的 所以馬上可以過濾 大部分 數據 ,所以 2 比較好些
原創文章,作者:NJYO,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/139762.html