導航:首頁 > 編程語言 > php程序的工作流程

php程序的工作流程

發布時間:2024-10-21 10:33:16

① 簡述在web伺服器中,Apache和php的工作流程

那麼php的運行原理就是Apache、PHP、瀏覽器之間的協作過程:
①當用戶在瀏覽器地址中輸入要訪問的PHP頁面文件名,然後回車就會觸發這個PHP請求,並將請求傳送化支持PHP的WEB伺服器(apache)。
②WEB伺服器(apache)接受這個請求,並根據其後綴進行判斷如果是一個PHP請求,WEB伺服器(apache)從硬碟或內存中取出用戶要訪問的PHP應用程序,並將其發送給PHP引擎程序。
③PHP引擎程序將會對WEB伺服器(apache)傳送過來的文件從頭到尾進行掃描並根據命令從後台讀取,處理數據,並動態地生成相應的HTML頁面。
④PHP引擎將生成HTML頁面返回給WEB伺服器(apache)。WEB伺服器(apache)再將HTML頁面返回給客戶端瀏覽器,最後一個完整的頁面基於通過瀏覽器展現在我們眼前。

② php工作流程

PHP是運行與伺服器端的腳本語言,實現了資料庫與網頁之間的數據交互。一個完整的PHP網站系統由以下幾部分組成。
操作系統
網路中的 伺服器也是一台計算機,因此需要操作系統。PHP有著良好的跨平台性,支持windows和Linux等操作系統
web伺服器
當一台計算機中安裝操作系統後,還需要安裝web伺服器才能進行http訪問。常見的web伺服器軟體有Apache、IIS、Nginx等
資料庫
用於網站數據的存儲和管理。PHP支持多種資料庫,包括MySQL、sql server,oracle。db2
PHP軟體
用於解析PHP腳本文件、訪問資料庫等,是運行PHP代碼所必須的軟體。
瀏覽器
是瀏覽網頁的客戶端。由於PHP腳本是在伺服器端運行的,因此通過瀏覽器看到的是經過PHP處理後的html結果。。Zend引擎:Zend整體用純C實現,是PHP的內核部分,他將PHP代碼翻譯(詞法、語法解析等一系列編譯過程)為可執行opcode的處理並實現相應的處理方法、實現了基本的數據結構(如:hashtable、OO)、內存分配機制及管理、提供了相應的api方法供外部調用,是一切的核心,所有的外圍功能均圍繞Zend實現。

2、Extensions:圍繞著Zend引擎,extensions通過組件式的方式提供各種基礎服務,我們常見的各種內置函數(array系列)、標准庫等都是通過extension來實現,用戶也可以根據需要實現自己的extension的典型應用)。

3、Sapi:Sapi全稱Server Application Programming Interface,也就是服務端應用編程介面,Sapi通過一系列鉤子函數,使得PHP可以和外圍交互數據,這是PHP非常優雅和成功的設計,通過sapi成功的將PHP本身和上層應用解耦隔離,PHP可以不再考慮如何針對不同應用進行兼容,而應用本身也可以針對自己的特點實現不同的處理方式。

4、上層應用:這就是我們平時編寫的PHP程序,通過不同的spai方式得到各種各樣的應用模式,如何通過webserver實現web應用、在命令行下已腳本方式運行等等。

③ 想問下php的socket的工作流程是什麼

PHP 使用Berkley的socket庫來創建它的連接。你可以知道socket只不過是一個數據結構。你使用這個socket數據結構去開始一個客戶端和伺服器之間的會話。這個伺服器是一直在監聽准備產生一個新的會話。當一個客戶端連接伺服器,它就打開伺服器正在進行監聽的一個埠進行會話。這時,伺服器端接受客戶端的連接請求,那麼就進行一次循環。現在這個客戶端就能夠發送信息到伺服器,伺服器也能發送信息給客戶端。
產生一個Socket,你需要三個變數:一個協議、一個socket類型和一個公共協議類型。產生一個socket有三種協議供選擇,繼續看下面的內容來獲取詳細的協議內容。
定義一個公共的協議類型是進行連接一個必不可少的元素。下面的表我們看看有那些公共的協議類型。

表一:協議
名字/常量 描述
AF_INET 這是大多數用來產生socket的協議,使用TCP或UDP來傳輸,用在IPv4的地址
AF_INET6 與上面類似,不過是來用在IPv6的地址
AF_UNIX 本地協議,使用在Unix和Linux系統上,它很少使用,一般都是當客戶端和伺服器在同一台及其上的時候使用
表二:Socket類型
名字/常量 描述
SOCK_STREAM 這個協議是按照順序的、可靠的、數據完整的基於位元組流的連接。這是一個使用最多的socket類型,這個socket是使用TCP來進行傳輸。
SOCK_DGRAM 這個協議是無連接的、固定長度的傳輸調用。該協議是不可靠的,使用UDP來進行它的連接。
SOCK_SEQPACKET 這個協議是雙線路的、可靠的連接,發送固定長度的數據包進行傳輸。必須把這個包完整的接受才能進行讀取。
SOCK_RAW 這個socket類型提供單一的網路訪問,這個socket類型使用ICMP公共協議。(ping、traceroute使用該協議)
SOCK_RDM 這個類型是很少使用的,在大部分的操作系統上沒有實現,它是提供給數據鏈路層使用,不保證數據包的順序

表三:公共協議
名字/常量 描述
ICMP 互聯網控制消息協議,主要使用在網關和主機上,用來檢查網路狀況和報告錯誤信息
UDP 用戶數據報文協議,它是一個無連接,不可靠的傳輸協議
TCP 傳輸控制協議,這是一個使用最多的可靠的公共協議,它能保證數據包能夠到達接受者那兒,如果在傳輸過程中發生錯誤,那麼它將重新發送出錯數據包。

現在你知道了產生一個socket的三個元素,那麼我們就在php中使用socket_create()函數來產生一個socket。這個 socket_create()函數需要三個參數:一個協議、一個socket類型、一個公共協議。socket_create()函數運行成功返回一個包含socket的資源類型,如果沒有成功則返回false。
Resourece socket_create(int protocol, int socketType, int commonProtocol);

現在你產生一個socket,然後呢?php提供了幾個操縱socket的函數。你能夠綁定socket到一個IP,監聽一個socket的通信,接受一個socket;現在我們來看一個例子,了解函數是如何產生、接受和監聽一個socket。

<?php
$commonProtocol = getprotobyname(「tcp」);
$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);
socket_bind($socket, 『localhost』, 1337);
socket_listen($socket);
// More socket functionality to come
?>

上面這個例子產生一個你自己的伺服器端。例子第一行,
$commonProtocol = getprotobyname(「tcp」);
使用公共協議名字來獲取一個協議類型。在這里使用的是TCP公共協議,如果你想使用UDP或者ICMP協議,那麼你應該把getprotobyname() 函數的參數改為「udp」或「icmp」。還有一個可選的辦法是不使用getprotobyname()函數而是指定SOL_TCP或SOL_UDP在 socket_create()函數中。
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
例子的第二行是產生一個socket並且返回一個socket資源的實例。在你有了一個socket資源的實例以後,你就必須把socket綁定到一個IP地址和某一個埠上。

④ PHP典型模塊與項目實戰大全:PHP能做什麼

PHP能做什麼

PHP初學者的一個主要疑問就是 PHP能用來做什麼?按照PHP手冊上的經典解釋就是 PHP能做任何事!

下面為讀者具體的介紹PHP主要的應用領域 PHP是運行於服務端的腳本程序 因此可以用其完成任何CGI(Common Gateway Interface)程序能夠完成的工作 CGI工作流程如圖 所示 CGI主要用於完成在B/S(Browser/Server)模式下的應用開發 例如 動態頁面輸出 獲取表單數據 創建或接收Session/Cookies

圖 CGI工作流程示意圖

PHP主要應用於以下 個領域

服務端腳本

伺服器腳本運行模式需要具備 個條件 PHP解析器(CGI或者伺服器模塊) Web伺服器 Web瀏覽器

具體執行流程 首先運行Web伺服器 然後安裝並配置PHP 最後可以用Web瀏覽器訪問PHP程序的輸出 即瀏覽服務端的PHP頁面(或數據輸出)

命令行腳本

通過命令行模式運行PHP腳本 這種模式下不需要伺服器的支持或者依賴瀏覽器的觸發 在命令行腳本模式下僅需要PHP解析器來執行 通常這種方法被用在Windows和Linux平台下做日常運行腳本使用 如某些守護程序等 當然這些腳本也可以用來處理簡單的文本

編寫桌面應用程序

PHP也許並不完全適合用來做圖形界面應用程序 但是開發人員同樣可以在客戶端程序應用某些PHP的高級特性 通過使用PHP GTK來編寫這些程序 PHP GTK是PHP的一個擴展 並不包含在標準的開發包中 開發人員需要單獨編譯它 通過PHP GTK可以建立獨立的GUI(用戶圖形界面)應用程序 例如 音頻播放器 文本編輯器 資料庫後台等

返回目錄 PHP典型模塊與項目實戰大全

編輯推薦

Java Web開發詳解

PHP Web開發學習實錄

lishixin/Article/program/PHP/201311/21535

⑤ 請簡述PHP+MySQL的Web應用程序的工作流程

PHP開發Web應用時所有的請求需要指向具體的入口文件。WebServer是一個內容分發者,他接受用戶的請求後,如果是請求的是css、js等靜態文件,WebServer會找到這個文件,然後發送給瀏覽器;如果請求的是/index.php,根據配置文件,WebServer知道這個不是靜態文件,需要去找PHP解析器來處理,那麼他會把這個請求簡單處理後交給PHP解析器。
php解析器對Mysql進行數據請求,得到數據之後由php輸出到web前端。

閱讀全文

與php程序的工作流程相關的資料

熱點內容
python大數據pdf 瀏覽:724
上饒雲伺服器找哪家公司 瀏覽:255
程序員個人亮點 瀏覽:507
突破區間源碼 瀏覽:921
ugpdf教程下載 瀏覽:914
買二手房時幫忙解壓 瀏覽:524
如何將文件夾分享給好友 瀏覽:98
後台文件夾的內容怎麼刪除 瀏覽:551
wd移動硬碟是否加密 瀏覽:116
手機存資料用什麼app 瀏覽:721
如何將前端頁面上傳伺服器 瀏覽:660
連接會議伺服器失敗什麼意思 瀏覽:910
安卓怎麼設置雙擊顯示微信健康碼 瀏覽:614
sql刪除記錄的命令 瀏覽:147
什麼app可以智能圖片分類 瀏覽:435
androidshiro 瀏覽:763
pdf書籍去哪裡下載 瀏覽:370
php實現擴展的機制 瀏覽:133
名校貸app長什麼樣 瀏覽:637
adbreboot命令重啟教程 瀏覽:911