利用PHP V5開發多任務應用程序(4)_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:詳細解析 PHP 向 MySQL 發送數據過程
      下面的一段代碼是一個很簡單的 HTML 表單: <html> <body> <formaction=submitform.php3method=GET> 姓:<inputtype=textname=fir

      雖然清單 3 的特殊實現特定于 UNIX?,但是本文中幾乎所有實現都將很好地應用于 Windows?(尤其是 Windows 98 以后的版本)或 PHP 的 UNIX 安裝。特別地,清單 1 可以托管在任意一個操作系統中。因此,Linux? 和 Mac OS X 都是 UNIX 變體,因此這里所有的代碼都可以在兩者的任意一種中運行。

      按照以下順序向延遲服務器發出請求。

      清單 4. 進程啟動順序

      delay=15
      delay=12
      delay= 9
      delay= 6
      delay= 3

      stream_select 的作用是盡可能快速地接收結果。在這種情況下,它執行的順序與發出結果的順序剛好相反。3 秒后,第一個頁面已經準備好讀取。程序的這一部分也符合常規 PHP —— 在本例中,使用 fread。就像在其他 PHP 程序一樣,讀取可以很好地通過 fgets 完成。

      處理將以同樣的方法繼續。程序將在 stream_select 停止,直至數據就緒。重要的一點是,只要任何 連接具有數據,不管順序怎樣,程序都將開始讀取。這是程序進行多任務處理或并發處理來自多個請求的結果的方法。

      注意,這沒有對主機 CPU 造成任何負擔。經常會遇到這樣一些連網程序,以 CPU 使用率急速上升至 100% 的方式在 while 中使用 fread。那種情況不會出現在這里,因為 stream_select 擁有支持立即響應所需的屬性(只要有任何讀取信息),但是它將在各讀取操作間隙的等待時間內產生可忽略的 CPU 負載。

      必備的 stream_select() 知識

      諸如此類的基于事件的編程并不是最基本的。雖然清單 1 被簡化到只包含最基本要素,但是涉及作為多任務應用程序必要元素的回調或協調的任何編碼,比簡單的程序順序更讓人覺得陌生。在這種情況下,大多數挑戰集中在 $read 數組上。注意,它是一個引用;stream_select 將通過改變 $read 的內容返回重要信息。就像指針是 C 的最大絆腳石一樣,引用似乎是 PHP 中最讓程序員感到棘手的一部分。

      分享:PHP實現靜態發布的方法淺談
      如今很多網站都是靜態發布的,PHP當然也可以方便的實現靜態發布嘍,具體的實現方法很多,下面我就說說我會的兩種方法。 方法一:ob_get_contents() 這是一種很方便的方法,也是很常用的方法

      來源:模板無憂//所屬分類:PHP教程/更新時間:2008-08-22
      相關PHP教程