程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 簡單解析PHP程序的運行流程

簡單解析PHP程序的運行流程

編輯:PHP綜合

一直想了解Web編程的技術。PHP是進行Web編程重要的一種語言,書上總是說,PHP是用於服務器端的編程語言。但是,實在不能理解它是怎麼用於服務器端編程,如何被運行。也看過一些PHP的教程,大多是介紹語法,卻沒有給出前面的問題解答。最近東拼西湊的看了一些東西,終於對PHP如何運行有了一些了解。

HTTP協議與PHP腳本的觸發
HTTP是一種基於Request/Response的協議,是支持Web運行的協議基礎。HTTP的客戶端發送Request
到服務器端,服務器端返回Response。Request中包含客戶端需要訪問的頁面的文件名。服務器端返回該文件名指向的網頁。如果沒有使用PHP、JavaScript等,HTTP協議傳輸只能是靜態的HTML文件。也就是,HTML文件不會受到用戶行為的影響,內容一直保持不變。

2016623173524269.gif (411×473)

如果要實現動態網頁,就需要使用PHP或JavaScript。PHP是用於服務器端的編程語言,JavaScript是多用於客戶端的編程語言。

PHP代碼是在服務器端被執行的。用戶訪問一個包含PHP代碼的網頁時,發送Request到服務器,其中包含網頁的文件名。服務器收到Request後,找到文件名指向的文件,發現其中嵌有PHP代碼,會調用PHP解釋器處理該文件,然後將處理後的結果整理到Response,發送到客戶端。PHP代碼可以與服務器端的數據庫或其他資源進行交互,或者根據用戶的操作產生不同的頁面。

因此,PHP腳本的觸發是在服務器收到客戶端的Request。收到一個Request後,服務器觸發一個PHP腳本;處理完腳本後,返回結果到客戶端,等待下一個Request。當收到下一個Request後,服務器觸發另一個(或同一個)PHP腳本。兩次PHP腳本的運行是相互獨立的,第二次腳本的運行幾乎不受前一次腳本運行的影響。

JavaScript代碼一般是在客戶端被執行的,即被浏覽器所處理。客戶端從服務器端獲取的是JavaScript代碼,而不是代碼被執行後的結果,然後調用解釋器執行該代碼。

PHP的代碼塊
PHP代碼是可以嵌入到HTML文件中的,經常可以在HTML文件中看到散落在各處的PHP代碼塊。我也一直困惑在同一個HMTL文件中,不同的PHP代碼塊之間是怎樣的關系。原來PHP是會忽略兩個PHP代碼塊之間HTML代碼的。

<head>
  <title>Test PHP Multiple Blocks</title>
</head>
<body>
  <p>This is HTML code.</p>

  <?php
    $var = 1;
    echo "<p>This is PHP code block 1. <br/> \$var=$var </p>";
  ?>

  <p>This is HTML code too.</p>

  <?php
    $var += 1;
    echo "<p>This is PHP code block 2. <br/> \$var=$var</p>" 
  ?>

</body>

代碼中有兩個PHP代碼塊,它們被HTML代碼隔開了。第1個PHP代碼塊聲明了1個變量$var;第2個代碼塊引用$var,進行改變了它的值。用PHP執行上述代碼,得到的輸出如下。

<head>
  <title>Test PHP Multiple Blocks</title>
</head>
<body>
  <p>This is HTML code.</p>

  <p>This is PHP code block 1. <br/> $var=1 </p>
  <p>This is HTML code too.</p>

  <p>This is PHP code block 2. <br/> $var=2</p>
</body>

第2個代碼塊是可以引用$var的。雖然被HTML代碼隔開了,但是兩段代碼的執行完全忽略了HTML部分。PHP的輸出與下面沒有被HTML隔開的PHP代碼是一樣的,前者只是在PHP輸出結果之間插入了相應的HTML代碼。

  <?php
    $var = 1;
    echo "<p>This is PHP code block 1. <br/> \$var=$var </p>";

    $var += 1;
    echo "<p>This is PHP code block 2. <br/> \$var=$var</p>" 
  ?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved