首頁  >  文章  >  後端開發  >  PHP學習寶典-第四章

PHP學習寶典-第四章

黄舟
黄舟原創
2016-12-23 09:41:391294瀏覽

將PHP嵌入HTML

本章重點

◆ 轉入PHP模式

◆ 選擇PHP的捲標樣式

◆ 使用PHP寫第一個程式
World
經過前面幾章的初步介紹,相信你現在就可以一始寫PHP的script了。在本章中我們將進一步了解PHP模式,PHP卷標以及其它相關檔案的含括(include)和請求(require)。讀者將從這裡寫出第一個簡單的PHP程式。

HTMK與PHP完成相容

PHP可以和HTML完全地混合運用,實際上PHP通常是必須嵌入在HTML內使用的。你稍後會看到,PHP能夠使用HTML標準中一些靈活的語法,例如窗體(form),來處理許多相當好用的性質。

在客戶端與HTML相容的所有一切同樣子也和PHP相容。 PHP不會理會其它的JavaScript 程式碼、對音樂和動書的呼叫、apples或客戶端上的其它一切。 PHP都會忽略它們,這部分會由Web伺服器把它們傳遞到客戶端。

其實讀者你可以使用任何方法開發Web網頁,然後再把PHP程式碼加上去。如果你已習慣是用小組團隊的方式工作,並使用大型多媒體繪圖套件來開發每個頁面,如果你願意,同樣也可以繼續延用這種方式。從實用的觀點來看,你無須改變工具或工作流程,就按照以往一直使用的方式繼續下去,在最後再添加伺服端功能即可。

跳出HTML模式

我們要怎麼在HTML中標示出PHP的區段呢?其實透過在每個PHP區段的啟始和結尾時使用特殊的PHP標籤,就能夠做到這一點要求。這個過程就稱為「跳出HTML(escaping from HTML)」或所謂的「跳進PHP(escaping into PHP)」。

我們不是為了要讓你混淆,這裡的跳(escpae)與一般PHP所使用的eacape不同,那些是在字符串內特殊字符(例如tab或是換行字符)之前使用反斜線的用法。

在這兩個PHP標籤之間的所有內容都會藉由PHP解析器辨識理解為PHP程式碼。這兩個標籤以外的所有內容就與伺服器無關了,就會直接傳給客戶端,由客戶端弄清楚它是HTML、JavaScript或是其它什麼內容。

PHP標籤有四種類型,在使用它們時分別有不同的原。不過有些是因為個人的喜好問題、或是因為程式設計師用什麼會感到比較舒服的問題,或是上一個團隊自己決定要使用的設定。

標準的PHP標籤

最常使用的PHP標籤如下:

 
如果使用這種格式,就可發十分肯定所用的標籤能夠被正確地直譯。除百非有很好的理由才去選取用其它的寫法格式,否則最好就這種標準寫法。其它任何PHP tag寫法可能在未來都會被取消,這是唯一被認為安全的寫法。

簡短起始(SGML格式)標籤

簡短起始標籤如下圖:

 

這是最簡單的表示方式。由於這種方式的輸入次數較少,會吸引那些在每個script中頻繁切換進出HTML的使用者,然而使用這種短標籤也是要付出代價的,必須做到下面的三種方式之一來讓PHP辨識該標籤:

1. 在建構PHP時,要記得選擇「--enable-short-tags」的設定選項。

2. 在php.ini檔案中啟用short_open_tag設定。但在使用這個選項時,必須禁止XML和PHP一併使用,這是因為XML的tag也是使用這種語法。

還有一個可以用來使用簡短語法的方式:使用short_open()函式,但是這種用法在PHP 4以後已不再提供使用。

有許多是不要使用簡短卷標語法的原因,最主要的原因就是此種語法與XML不相容,又因為XHTML也是一種XML?,所以將使得你的PHP程式將無法使用在XHTML檔案內。使用簡短卷標的PHP程序是比較不空易視覺上的辨識出來,許多程序代碼顏色強調的工具並不會支持這種語法,入門的設計者應該在所有可能的地方使用標準的捲標語法。

簡短村簽過去是許多設計高手習慣以為常用來使用PHP的方式,如今PHP開發團隊努力平衡於得供眾多用戶安裝方式的標準與一致性語法,雖然過去已經有大量的程序代碼使用舊式文法,但因為XML變成Web開發越來越中心的技術,簡短標籤將會在未來淡化,所以你必須給自己一個方便馬上使用標準的語法。

如果你已經養好習慣要避免使用簡短標籤格式,記得在你的php.ini檔案中取消它,你會在你忘記使用標準格式的地方響應一個錯誤訊息。

ASP格式的標籤

ASP格式的捲標是Microsoft Active Server Pages用來隱藏程序段落和卷標,ASP格式的捲標如下所示:

 

使用FrontPage做為開發工具的使用者最常選擇這種格式。如果要使用這種ASP格式的標籤,則必須在php.ini檔案中設定配置該選項。很顯然地,如果你使用ASP寫法格式的標籤和以“.asp ”為擴展名(之前便工作於ASP網站的人可能希望如此),則需要在IIS伺服器上先把ASP功能關掉,否則兩種程序引擎都會嘗試解析相同程序段落而產生不可預期的結果。

HTML的script標籤

這種標籤的寫法如下所示:

 
雖然這樣很有效率,並且也以能夠迴避FrontPage的問題,但在某些情況下還是會很麻煩,例如在迅速蹦現(php-in)變數的替換上就會遇到麻煩。尤其是,如果網站上使用了很多JavaScript,請務必更加小心,因為結束script的標籤很容易造成兩個意義的混淆。 HTML的script標籤最適合用於PHP程式碼差異很大的時候。

第一個程式「Hello World」

現在我們準備寫第一個PHP程式。先在自己喜歡使用的編輯器中開啟一個新檔案,鍵入以下內容:

PHP學習寶典-第四章

在大多數瀏覽器中,除了PHP這部分,其它內容都不是很需要的。然而還是應該養成使用標準HTML結構一嵌入PHP的好習慣。

如果看不到非常類似圖4-1所示的輸出,那就是有問題了,很可能是某種安裝或設定上出也問題。

PHP學習寶典-第四章

回顧第三章的內容即可以了解安癍上的說明,向後翻閱到第三十七章可以找到相關的設定與配置選項。另外在第十五章分析了一些常見的問題並沒有提供錯誤問題相關資訊。

進出PHP模式

在PHP的script內任一時刻,你可能是處於PHP模式之中,劃是處於PHP模式之外的HTML內。這裡沒有其它中間的狀態,PHP標籤內的所有內容就是PHP程式碼,標籤外的所有內容都有是普通HTML內容。

可以依自己高興使用PHP卷標隨時轉入PHP模式,例如:

PHP學習寶典-第四章

請注意在第一個PHP模式實例下發生的情況,這裡有個數指定了值,到了第二段PHP程式碼該指定仍屬有效。在下一章你會學到更多進出PHP模式時變數的相關使用。在第十四章還會學到使用PHP模式的不同型式風格。

檔案含括(include)

把PHP加到HTML中的另一種方法是把PHP程式碼放入單獨的檔案,然後使用PHP的include 函式呼叫它。共有四種相關的含括函數:

PHP學習寶典-第四章

先在前版本的PHP內,include與require函式和功能與速度有顯著的差異,這將不再成立,這兩類函數只有在錯誤所時丟出錯誤訊息的型別不同, include()函式與include_once()函式只會在錯誤時發出警告,但是require()函式與require_once()函式會發出嚴重錯誤而中斷程序。

如同函式的命名所提及的,include_once()和require_once()與名稱只有include()和require()不同的地方在於它們只會允許每個PHP程式中只含括一次該檔案,這在你含括內含PHP函數的檔案時是極度有用的。因為重新定義函數將會自動導致嚴重錯誤。在大型PHP系統內,常常需要含括一些本身也有含括其它檔案的檔案,但是要追蹤你之前是否已經含括過某特定檔案是困難的,但是一但使用include_once()或是require_once()則不需要如此。

你要如何決定是否要使用include()函式呢?基本上是你必須決定是否堅持自己寫好的程序來避免嚴重錯誤的痛苦,或者在你的程序中即使出現常見錯誤仍無訪,最嚴重的方式就是使用require(),它會在你的程序不完善時馬是中斷程序,最不嚴謹的就是include_once(),它會自然隱藏你的一些壞的程序習慣。

最常見的PHP include功能就是在網站的所有網頁加入首頁與頁尾。

例如現在有一個簡單的頁首檔案(稱為header.inc)如下所示:

PHP學習寶典-第四章

顯然的,這樣單一改變簡化了整個網站的維護與規模,現在如果你要使用不同的視覺呈現或是如果你要更新版權說明的話,你只要更改一個檔案而不需要更改好幾個HTML網頁的相同程序片段。

當你要含括檔案時,記得在你php.ini檔案內的inculde_path指令設定正確,只要藉由使用正確的指令你可以含括來自網站上層次或你的Web結構之外網站的檔案,請參閱第37章更詳細說明。

如同你可以在上述程式所見一樣,PHP的include()函式只會所含括的檔案以文字的方式傳送,許多人以為由於include()函式是在PHP模式內使用的,所以含括進的部分也會屬於PHP模式,這並不是真的,事實上伺服器會在含括號檔案一開始跳回HTML模式,並在含括檔案結束後悄悄返回PHP模式,並馬上與分號結合。

你永遠都要在想要使用PHP程式時使用PHP的起始與結束標籤,任何被含括的檔案若想要以PHP執行的話都必須加入合法的標籤,如果整個檔案都屬於PHP部分(常見於使用函數的檔案),整個檔案都必須以PHP標籤包住。

現在我們來看底下檔案,database.inc:

PHP學習寶典-第四章

我們無法充分在此彈調:如果你在含括PHP檔案發生問題時,尤其是如果你所看見的結果並非預期或看不見應該看到的部分時,請絕對小心在你有含括檔案內前後都有加上PHP標籤。

如果你愚蠢的只將上述片段的檔案含括進PHP程式的話,你會看到此資料庫變數會變成文字顯示在頁面上,因為你忽略了使用PHP標籤,解析器以為這個段落是HTML ,正確database.inc的寫法應該如下所示:

PHP學習寶典-第四章

對於所有含括其它檔案,你必須確保在最後一行沒有使用換行,記住任何PHP之外的部分都被看成HTML部分,甚至一個空白行也是如此,PHP標籤之外的空白行或是空格符將會被輸出,如果你在不能使用輸出的時候含括了這個檔案,例如在使用HTTP header之前,你的程式會出現一個大大關於輸出流已經在含括檔案內使用的錯誤訊息,請參閱第15章更詳細的部分。

摘要

PHP很容易嵌入到HTML中,你可以使用任何一種自己習慣使用的HTML產生方法,然後再加入PHP程式碼區段到其中。加上的PHP程式碼區段可以是只有一點點的註解單一數字,也可以是很長很長的程式碼區段。

每個PHP區塊,無論長短都要有PHP標籤。雖然本章介紹了幾種寫法格式的PHP標籤,但初學者應該還是要使用標準規範的那一種標籤寫法。你也可以使用include()或require()函式,在檔案中將PHP檔案含括入內,但被含括檔案的內容只有圍在PHP標籤內時才會被識別為PHP程式碼,這一點要特別留意。

 以上就是PHP學習寶典-第四章的內容,更多相關內容請關注PHP中文網(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn