P粉1119279622023-08-23 15:50:54
要確定為什麼PHP程式碼在JavaScript#程式碼中不起作用,我們需要了解什麼是客戶端和伺服器端語言,以及它們的工作原理。
伺服器端語言(如PHP等):它們從資料庫中檢索記錄,保持在無狀態的HTTP連接上維持狀態,並執行許多需要安全性的操作。它們駐留在伺服器上,這些程式的原始碼從不暴露給使用者。
因此,您可以很容易地看出伺服器端語言處理HTTP請求並對其進行處理,正如@deceze所說,PHP在伺服器上執行並輸出一些HTML,以及可能的JavaScript程式碼,這作為回應發送到客戶端,在那裡解釋HTML並執行JavaScript。
另一方面,客戶端語言(如JavaScript)駐留在瀏覽器中並在瀏覽器中執行。 客戶端腳本通常指在Web上由使用者的網頁瀏覽器而不是伺服器端執行的電腦程式。
JavaScript對使用者可見且可以輕鬆修改,因此對於安全性問題,我們不能依賴JavaScript。
因此,當您在伺服器上發出HTTP請求時,伺服器首先仔細讀取PHP檔案以查看是否有需要執行的任務,並向客戶端發送回應。再次,正如@deceze所說,*一旦PHP完成輸出回應,腳本將結束,直到收到新的HTTP請求,伺服器上將不會發生任何事情。 *
那麼,如果我需要呼叫PHP,我該怎麼辦?這取決於您需要如何操作:透過重新載入頁面或使用AJAX呼叫。
好的閱讀材料:
#P粉1037395662023-08-23 09:17:40
您的程式碼被分成兩個完全獨立的部分,即伺服器端和客戶端。
|
---------->
HTTP请求
|
+--------------+ | +--------------+
| | | | |
| 浏览器 | | | 网络服务器 |
| (JavaScript) | | | (PHP等) |
| | | | |
+--------------+ | +--------------+
|
客户端 | 服务器端
|
<----------
HTML, CSS, JavaScript
|
這兩個部分透過HTTP請求和回應進行通訊。 PHP在伺服器上執行並輸出一些HTML和可能的JavaScript程式碼,作為回應傳送給客戶端,在客戶端解釋HTML並執行JavaScript。一旦PHP完成輸出回應,腳本就會結束,在伺服器上不會發生任何事情,直到有新的HTTP請求進來。
範例程式碼的執行過程如下:
<script type="text/javascript"> var foo = 'bar'; <?php file_put_contents('foo.txt', ' + foo + '); ?> var baz = <?php echo 42; ?>; alert(baz); </script>
第一步,PHP執行<?php ?>
標籤之間的所有程式碼。結果如下:
<script type="text/javascript"> var foo = 'bar'; var baz = 42; alert(baz); </script>
file_put_contents
呼叫沒有產生任何結果,它只是將" foo "寫入檔案中。而<?php echo 42; ?>
呼叫的結果是輸出"42",現在它在原來程式碼的位置。
這個結果的HTML/JavaScript程式碼現在被傳送到客戶端,在那裡被評估。 alert
呼叫起作用,而foo
變數在任何地方都沒有被使用。
所有的PHP程式碼都在客戶端開始執行任何JavaScript之前在伺服器上執行。回應中沒有剩餘的PHP程式碼可以與JavaScript互動。
要呼叫一些PHP程式碼,客戶端必須向伺服器傳送一個新的HTTP請求。這可以透過以下三種可能的方法之一來實現:
您也可以使用JavaScript讓瀏覽器開啟一個新頁面,使用window.location
或提交一個表單,模擬1和2的可能性。