PHP程式的運行流程你知道嗎?

來源:互聯網
上載者:User
PHP代碼被PHP解譯器解釋後只可運行於伺服器上的Web端,這裡我們來簡單解析PHP程式的運行流程,需要的朋友可以參考下

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

HTTP協議與PHP指令碼的觸發
HTTP是一種基於Request/Response的協議,是支援Web啟動並執行協議基礎。HTTP的用戶端發送Request
到伺服器端,伺服器端返回Response。Request中包含用戶端需要訪問的頁面的檔案名稱。伺服器端返回該檔案名稱指向的網頁。如果沒有使用PHP、JavaScript等,HTTP協議傳輸只能是靜態HTML檔案。也就是,HTML檔案不會受到使用者行為的影響,內容一直保持不變。

如果要實現動態網頁,就需要使用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>"   ?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.