欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡(jiǎn)單解析PHP程序的運(yùn)行流程

 更新時(shí)間:2016年06月23日 17:39:12   作者:catHeart  
PHP代碼被PHP解釋器解釋后只可運(yùn)行于服務(wù)器上的Web端,這里我們來簡(jiǎn)單解析PHP程序的運(yùn)行流程,需要的朋友可以參考下

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

HTTP協(xié)議與PHP腳本的觸發(fā)
HTTP是一種基于Request/Response的協(xié)議,是支持Web運(yùn)行的協(xié)議基礎(chǔ)。HTTP的客戶端發(fā)送Request
到服務(wù)器端,服務(wù)器端返回Response。Request中包含客戶端需要訪問的頁面的文件名。服務(wù)器端返回該文件名指向的網(wǎng)頁。如果沒有使用PHP、JavaScript等,HTTP協(xié)議傳輸只能是靜態(tài)的HTML文件。也就是,HTML文件不會(huì)受到用戶行為的影響,內(nèi)容一直保持不變。

2016623173524269.gif (411×473)

如果要實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁,就需要使用PHP或JavaScript。PHP是用于服務(wù)器端的編程語言,JavaScript是多用于客戶端的編程語言。

PHP代碼是在服務(wù)器端被執(zhí)行的。用戶訪問一個(gè)包含PHP代碼的網(wǎng)頁時(shí),發(fā)送Request到服務(wù)器,其中包含網(wǎng)頁的文件名。服務(wù)器收到Request后,找到文件名指向的文件,發(fā)現(xiàn)其中嵌有PHP代碼,會(huì)調(diào)用PHP解釋器處理該文件,然后將處理后的結(jié)果整理到Response,發(fā)送到客戶端。PHP代碼可以與服務(wù)器端的數(shù)據(jù)庫或其他資源進(jìn)行交互,或者根據(jù)用戶的操作產(chǎn)生不同的頁面。

因此,PHP腳本的觸發(fā)是在服務(wù)器收到客戶端的Request。收到一個(gè)Request后,服務(wù)器觸發(fā)一個(gè)PHP腳本;處理完腳本后,返回結(jié)果到客戶端,等待下一個(gè)Request。當(dāng)收到下一個(gè)Request后,服務(wù)器觸發(fā)另一個(gè)(或同一個(gè))PHP腳本。兩次PHP腳本的運(yùn)行是相互獨(dú)立的,第二次腳本的運(yùn)行幾乎不受前一次腳本運(yùn)行的影響。

JavaScript代碼一般是在客戶端被執(zhí)行的,即被瀏覽器所處理??蛻舳藦姆?wù)器端獲取的是JavaScript代碼,而不是代碼被執(zhí)行后的結(jié)果,然后調(diào)用解釋器執(zhí)行該代碼。

PHP的代碼塊
PHP代碼是可以嵌入到HTML文件中的,經(jīng)??梢栽贖TML文件中看到散落在各處的PHP代碼塊。我也一直困惑在同一個(gè)HMTL文件中,不同的PHP代碼塊之間是怎樣的關(guān)系。原來PHP是會(huì)忽略兩個(gè)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>

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

<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個(gè)代碼塊是可以引用$var的。雖然被HTML代碼隔開了,但是兩段代碼的執(zhí)行完全忽略了HTML部分。PHP的輸出與下面沒有被HTML隔開的PHP代碼是一樣的,前者只是在PHP輸出結(jié)果之間插入了相應(yīng)的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>" 
  ?>

相關(guān)文章

最新評(píng)論