利用PHP V5開發(fā)多任務(wù)應(yīng)用程序(3)_PHP教程
推薦:詳細(xì)解析 PHP 向 MySQL 發(fā)送數(shù)據(jù)過程下面的一段代碼是一個很簡單的 HTML 表單: <html> <body> <formaction=submitform.php3method=GET> 姓:<inputtype=textname=fir
如果運(yùn)行此清單,您將看到如下所示的輸出。
清單 2. 從清單 1 中的程序獲得的典型輸出
| Program starts at 02:38:50. Stream 4 closes at 02:38:53. Stream 3 closes at 02:38:56. Stream 2 closes at 02:38:59. Stream 1 closes at 02:39:02. Stream 0 closes at 02:39:05. |
了解這其中的工作原理至關(guān)重要。在較高層次上,第一個程序?qū)l(fā)出幾個 HTTP 請求并接收 Web 服務(wù)器發(fā)送給它的頁面。雖然生產(chǎn)應(yīng)用程序?qū)⒑芸赡軐ふ胰舾蓚 Web 服務(wù)器的地址 —— 可能是 google.com、yahoo.com、ask.com 等 —— 但是此示例將把它的所有請求發(fā)送到位于 Phaseit.net 的企業(yè)服務(wù)器上,只為降低復(fù)雜度。
Web 頁面請求在延遲(可變)后返回結(jié)果,如下所示。如果程序按順序發(fā)出請求,則需花費(fèi)大約 15 12 9 6 3 (45) 秒鐘才能完成。如清單 2 所示,它實際上花費(fèi) 15 秒鐘完成。性能提高了三倍。
使這成為可能的是 PHP V5 的新 stream_select 函數(shù)。請求都是以常規(guī)方法發(fā)起,方法為打開幾個 stream_socket_client 并向?qū)?yīng)于 http://phaseit.net/demonstration/delay?delay=$DELAY 的每個 stream_socket_client 寫入 GET。如果您通過瀏覽器請求此 URL,則在幾秒鐘之后,您將看到:
| Starting at Thu Apr 12 15:05:01 UTC 2007. Stopping at Thu Apr 12 15:05:05 UTC 2007. 4 second delay. |
延遲服務(wù)器將作為 CGI 實現(xiàn),如下所示:
清單 3. 延遲服務(wù)器實現(xiàn)
| #!/bin/sh echo "Content-type: text/html <HTML> <HEAD></HEAD> <BODY>" echo "Starting at `date`." RR=`echo $REQUEST_URI | sed -e 's/.*?//'` DELAY=`echo $RR | sed -e 's/delay=//'` sleep $DELAY echo "<br>Stopping at `date`." echo "<br>$DELAY second delay.</body></html>" |
分享:PHP實現(xiàn)靜態(tài)發(fā)布的方法淺談如今很多網(wǎng)站都是靜態(tài)發(fā)布的,PHP當(dāng)然也可以方便的實現(xiàn)靜態(tài)發(fā)布嘍,具體的實現(xiàn)方法很多,下面我就說說我會的兩種方法。 方法一:ob_get_contents() 這是一種很方便的方法,也是很常用的方法
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁面代碼執(zhí)行時間
- PHP中獎概率的抽獎算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問控制的和運(yùn)算符優(yōu)先級介紹
- 關(guān)于PHP語言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國語言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
- 相關(guān)鏈接:
- 教程說明:
PHP教程-利用PHP V5開發(fā)多任務(wù)應(yīng)用程序(3)
。