網站中的采用PHP+MySQL+HTML語言開發,那一定是動態網站,而這一個動態就體現在PHP的身上。
網站中的各個變量實質就是發送請求交由服務端,然后再把變量位置發送變化的數據給替換掉并展示給客戶端。
首先請求會交給nginx,在優化nginx做請求轉發給到PHP,然后PHP在進行業務代碼處理數據庫當中的數據相應操作,然后把獲取到的數據通過視圖模板渲染數據后生成為HTML頁面,在返回給nginx,由nginx來響應頁面數據給到瀏覽器,瀏覽器進行HTML頁面的DOM解析處理。
聯系就是數據通過PHP操作數據庫,獲取到數據庫數據然后再經過視圖模板進行渲染,在交由nginx返回給客戶端。
PHP和HTML
HTML是用戶看到客戶端的結果頁,但是這個結果頁是需要經過瀏覽器來進行標簽的解析處理的。既然是由瀏覽器解析HTML,那么頁面里面的變量肯定是經過PHP去執行處理的。
當用戶請求發送到服務器里面的nginx時,nginx會根據虛擬站點信息進行規則匹配,匹配到指定站點后,然后把請求交給到PHP,PHP在處理當前用戶請求里面需要做的事情,我們的業務邏輯就是php中完成。
處理完成后,PHP會執行一步叫做模板渲染的操作,這這里機會把相關的PHP變量替換成php的代碼,并執行里面的php代碼,最后就在相關變量位置得到最終需要的數據。然后生成的HTML靜態資源響應給nginx,在返回給客戶端
如果不是框架里面的模板渲染,而是普通的php嵌入html的頁面,就省去了模板變量替換php代碼過程
PHP和MySQL
mysql本質就是數據管理系統,一切頁面的展示和它沒關系,它只是提供頁面中需要的數據,而這個數據需要PHP用相關的mysql客戶端去連接到mysql數據庫。例如:mysqli、pdo
建立連接后再用SQL語句查找相關數據,拿到的數據就是視圖模板進行賦值的過程,相當于就是把數據通過賦值過程交給到視圖模板中去,畢竟你視圖解析的時候需要把模板變量替換為普通的php代碼后在執行。
綜上:php和mysql、html的關系。分別對應邏輯操縱、數據存儲、頁面效果展示,它們之間的聯系就來自于PHP進行相關邏輯、數據操作得到最終的數據,然后解析頁面在返回。
如有感悟,