將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這部分,其它內容都不是很需要的。然而還是應該養成使用標準HTML結構一嵌入PHP的好習慣。
如果看不到非常類似圖4-1所示的輸出,那就是有問題了,很可能是某種安裝或設定上出也問題。
回顧第三章的內容即可以了解安癍上的說明,向後翻閱到第三十七章可以找到相關的設定與配置選項。另外在第十五章分析了一些常見的問題並沒有提供錯誤問題相關資訊。
進出PHP模式
在PHP的script內任一時刻,你可能是處於PHP模式之中,劃是處於PHP模式之外的HTML內。這裡沒有其它中間的狀態,PHP標籤內的所有內容就是PHP程式碼,標籤外的所有內容都有是普通HTML內容。
可以依自己高興使用PHP卷標隨時轉入PHP模式,例如:
請注意在第一個PHP模式實例下發生的情況,這裡有個數指定了值,到了第二段PHP程式碼該指定仍屬有效。在下一章你會學到更多進出PHP模式時變數的相關使用。在第十四章還會學到使用PHP模式的不同型式風格。
檔案含括(include)
把PHP加到HTML中的另一種方法是把PHP程式碼放入單獨的檔案,然後使用PHP的include 函式呼叫它。共有四種相關的含括函數:
先在前版本的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)如下所示:
顯然的,這樣單一改變簡化了整個網站的維護與規模,現在如果你要使用不同的視覺呈現或是如果你要更新版權說明的話,你只要更改一個檔案而不需要更改好幾個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標籤,解析器以為這個段落是HTML ,正確database.inc的寫法應該如下所示:
對於所有含括其它檔案,你必須確保在最後一行沒有使用換行,記住任何PHP之外的部分都被看成HTML部分,甚至一個空白行也是如此,PHP標籤之外的空白行或是空格符將會被輸出,如果你在不能使用輸出的時候含括了這個檔案,例如在使用HTTP header之前,你的程式會出現一個大大關於輸出流已經在含括檔案內使用的錯誤訊息,請參閱第15章更詳細的部分。
摘要
PHP很容易嵌入到HTML中,你可以使用任何一種自己習慣使用的HTML產生方法,然後再加入PHP程式碼區段到其中。加上的PHP程式碼區段可以是只有一點點的註解單一數字,也可以是很長很長的程式碼區段。
每個PHP區塊,無論長短都要有PHP標籤。雖然本章介紹了幾種寫法格式的PHP標籤,但初學者應該還是要使用標準規範的那一種標籤寫法。你也可以使用include()或require()函式,在檔案中將PHP檔案含括入內,但被含括檔案的內容只有圍在PHP標籤內時才會被識別為PHP程式碼,這一點要特別留意。
以上就是PHP學習寶典-第四章的內容,更多相關內容請關注PHP中文網(www.php.cn)!

PHP在現代Web開發中仍然重要,尤其在內容管理和電子商務平台。 1)PHP擁有豐富的生態系統和強大框架支持,如Laravel和Symfony。 2)性能優化可通過OPcache和Nginx實現。 3)PHP8.0引入JIT編譯器,提升性能。 4)雲原生應用通過Docker和Kubernetes部署,提高靈活性和可擴展性。

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP和Python各有優勢,適合不同場景。 1.PHP適用於web開發,提供內置web服務器和豐富函數庫。 2.Python適合數據科學和機器學習,語法簡潔且有強大標準庫。選擇時應根據項目需求決定。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP成為許多網站首選技術棧的原因包括其易用性、強大社區支持和廣泛應用。 1)易於學習和使用,適合初學者。 2)擁有龐大的開發者社區,資源豐富。 3)廣泛應用於WordPress、Drupal等平台。 4)與Web服務器緊密集成,簡化開發部署。

PHP在現代編程中仍然是一個強大且廣泛使用的工具,尤其在web開發領域。 1)PHP易用且與數據庫集成無縫,是許多開發者的首選。 2)它支持動態內容生成和麵向對象編程,適合快速創建和維護網站。 3)PHP的性能可以通過緩存和優化數據庫查詢來提升,其廣泛的社區和豐富生態系統使其在當今技術棧中仍具重要地位。

在PHP中,弱引用是通過WeakReference類實現的,不會阻止垃圾回收器回收對象。弱引用適用於緩存系統和事件監聽器等場景,需注意其不能保證對象存活,且垃圾回收可能延遲。

\_\_invoke方法允許對象像函數一樣被調用。 1.定義\_\_invoke方法使對象可被調用。 2.使用$obj(...)語法時,PHP會執行\_\_invoke方法。 3.適用於日誌記錄和計算器等場景,提高代碼靈活性和可讀性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver Mac版
視覺化網頁開發工具