搜尋
首頁後端開發php教程PHP學習寶典-第二章

PHP學習寶典-第二章

Dec 23, 2016 am 09:33 AM
php學習

伺服端Web的Scripting語言

本章重點
·認識靜態的動態Web網頁
·用戶端與伺服端Scripting語言的對比
·伺服端Scripting語言簡介

本章重點在討論伺服器端Scripting語言本身,另外也談到它與靜態HTML和一般用戶端技術之間的關係。在本章結束時,讀者就能夠清楚知道PHP能做什麼、不能做什麼、還能夠對它與用戶端原始如何進行交流有大致上的了解。

靜態HTML

最基本的Web網頁形式是完全以HTML編寫純靜態、純文字的頁面。圖2-1中的簡單HTML頁面就是一個例子。

伺服端Web的Scripting語言

本章重點
·認識靜態的動態Web網頁
·用戶端與伺服端Scripting語言的對比
·伺服端Scripting語言簡介

本章重點討論伺服器端Scripting語言本身,另外也談到它與靜態HTML和一般用戶端技術之間的關係。在本章結束時,讀者就能夠清楚知道PHP能做什麼、不能做什麼、還能夠對它與用戶端原始如何進行交流有大致上的了解。

靜態HTML

最基本的Web網頁形式是完全以HTML編寫純靜態、純文字的頁面。圖2-1中的簡單HTML頁面就是一個例子。

 

圖2-1 靜態HTML網頁規範

以下為圖2-1的原始碼:

 

如圖2-2所示,當用戶端電腦透過Web或Intrantet從伺服器做出對某頁的HTTP請求時,伺服器只需傳遞檔案中找不到的純文字。


當該資料送回用戶端電腦,瀏覽器按照自己對原始碼內容的精確解析、用戶的偏好選項、顯示器大小以及其它因素做出最佳處理並呈現出來。伺服器上HTML檔案的內容與使用者端電腦上頁面的原始碼完全相同。

你這樣非常普通的靜態HTML有以下幾個優點:

◆ 任何瀏覽器都有能力顯示它。

◆大多數的裝置都有有能力顯示它。

◆它對每個請求都能迅速執行,並且只使用最少的資源。

◆ HTML容易學習或自動產生。

◆ 對單獨頁面能夠快速進行小變更。

◆ 當然,靜態HTML也有不良的一面:

◆ 難以控制設計與版面配置。

◆ 無法擴充到大量的頁面。

◆ 互動性不夠好。

◆ 不易包含關於頁面有意義metadata。

◆ 不容易應付內容或個人化資訊的快速改變。

◆ 不很有吸引力。


由於…只能算是「業餘」水準或某種理想堅定的應用(此理想堅定如某些電腦科學專家所寫的網頁,而他們認為所有的網頁應該遵守HTML3.1規格而且必須所有裝置都能讀取)。

針對這些限制,日前已經發展了很多種其它技術,其中包括用戶端的JavaScript、Cascading Style Sheet(CSS)和Java applets,還包括伺服端資料庫連接的伺服端scripting語言。正在發展中的技術尚包括XML和XSL,這兩種技術都有是其它各種規格(XHTML、XSLT、XPath、ICE等)的一部分。

如果花點時間去了解這些技術有哪能些功能,以及是否能夠加到自己的Web網站中,一定會減少往後讓你頭痛的機會。對於任何在手上的Web網站任務,第一步要先問自己的基本問題是:該運算(computation)在哪端執行,用戶端還是伺服端?

「動態(dynamic)」的涵義在「靜態」和「動態」Web網頁之間有一個基本且重複差異,但「動態」幾乎可以表示除普通HTML之外的所有一切。它既用來描述用戶端功能,也用來描述伺服端功能。在使用者端,「動態」可看成是多媒體展示、捲動的標題行、自動更新的頁面或是時隱時現的元素…等。在伺服端,這個術語一般是用來指稱正在空中傳送並互動組合的內容。

用戶端技術

對於普通HTML,最常見的內容新增是發生在用戶端。包含以下方面:CSS和Dynamic HTML之類的格式擴充能、使用者端scripting語言、Java applets和Flash。這些技術的支援方式是(大多數是有支援)內建在網頁瀏覽中。表2-1列出它們的功能,其中有部分重疊。

表2-1 用戶端HTML的擴充

 

圖2-3所列示的頁面範例與圖2-1乃基於相同的內容。

 


正如從原始碼中以看到的,這個例子新增了一些樣式表、用戶端scripting和一些比較複雜的HTML碼。

 

 


很不幸地,用戶端技術的最佳賣點也是最糟糕的特質:它們完全依賴瀏覽器。每種瀏覽器的功能差異很大,即使同一個牌子出品的不同版本之間差異也很大。處每個人也可以選擇以不同的方式配置自己的瀏覽器,例如,某些人們會因為安全的顧慮而禁止使用JavaScript,這樣得他們不可能瀏覽那些過度使用 JavaScript進行導覽處理的網站。 (如果我們在先前範例所示的功能)

而且,許多用戶由於費用或技術不足的原因,在瀏覽器的升級工作方面效果級差。 Web開發人員應該對基於裝置的瀏覽、普通性和全球性使用者等有所了解。無一例外,以大眾市場為導向而設計的網站都試圖取得最廣泛的用戶,例如,Yahoo!和Amazon在採納了這些標準後,堅持不使用樣式表和 JavaScript已經有三年多了。在W3C的壓力下,許多網站仍固執地堅持使用FONT標記和BGCOLOR屬性,他們的客戶可能是那些在13時顯示器的老舊Macintosh機器上使用AOL3.0的用戶。更諷刺的是,即使Web在經歷了五年快速發展之後,開發人員可以對客戶提出絕對保證的仍只是讓他們看到以純文字為主的普通HTML而已。 (或甚至是HTML的子集合而且已經成功輕鬆經歷過時間的考驗)

最後,用戶端技術不能做任何需要連接到後端伺服器的工作。 JavaScript無法根據儲存在資料庫中的使用者偏好選項即時產生自訂的下拉清單,當清單中需要做修改時,Web開發人員必須到該頁面進行手動的修改(伺服端JavaScript,但目前用得不太多)對於此問題,伺服端JavaScript語言是可以填補此一鴻溝的救星。

總之,處理版面配置或瀏覽器事件的一切動作都發生在使用者端上。一般來說,看起來很酷的效果或取決於滑鼠移動的事情都是在用戶端上。能夠看到某事件顯現的速度越快,它就越可能是由用戶端處理的,因為速度快就代表了不需要從伺服器進行下載。

注意:
Java applets,也稱為“client-side Java(用戶端Java)”,與用戶端其它技術相比,它對瀏覽器的依賴比較少。正如其名稱的暗示的,它們是透過Internet傳遞的完整小型Java 應用程序,但是它不像其它程序語言編寫的應用程序那樣,直接與用戶端的作業系統互動,Java applets執行於稱為JVM(Java Virtual Machine,Java虛擬主機)的中介軟體上。 JVM可看成是存在於真正作業系統之上的作業系統。大多數最新瀏覽器都會進入不敷出JVM,當然你也可以自己單獨下載一個來使用。這種工作上的區分使得applet在讓瀏覽器發揮特別功能時,不會受到瀏覽器相對較弱的能力限制。

applet在早期被認為是無意義的小東西,因為它們最初只是用於實現一些簡單的動書,如看上去像透明膠做的圖示標誌,會滾動的標題列,跳動的鍵結等。幸好,applet已經有了改變,也可用於一些具有人文意義的使用目的,諸如縱橫字謎、漢諾塔模擬、試穿戴套裝和飾物和虛擬方式等。


伺服端scripting語言

圖2-4是伺服器scripting資料流程的示意圖。

用戶端scripting語言非常有魅力,是非曲直Web開發中最搶眼的部分。伺服端程式設計則正好相反,它對使用者來說是看不見而隱藏在後面的。伺服端 scripting的程式設計人員總是在後端的Web伺服器的資料之間努力摸索,而在前端妹夫有藝術細胞的同仁們則可以在大眾面前書情展示自己的作品。

伺服端Web的scripting語言主要是將W eb網站連接到後端伺服器,諸如資料庫,這就允許進行雙向的交流溝通:


伺服端Web的scripting語言主要是將W eb網站連接到後端伺服器,諸如資料庫,這就允許雙向的交流溝通:

◆ 伺服器到用戶端:Web網頁可從後端伺服器輸出組合而成。

◆ 用戶端到伺服器:使用者端所輸入的資訊得以發生作用。

 

常見的用戶端到伺服器交流溝通的例子是,在伺服器上動態組合的線上表單和一些下拉式清單。 (通常它需要你按下按鈕)。

伺服端scripting語言產品有兩個主要部分:scripting語言和scripting引擎(可能內建在Web伺服器中,也可能不會內建)。引擎部分都有是由同一個公司或團隊開發的,只能互相配合使用(PHP3和ColdFusion就是這樣的兩個例子)。然而,這項規則也有例外,舉例來說, Java Server Pages就是以標準程式語言編寫的,而不是用於專門目的的scripting語言;有些配合廠商已經開發了幾個可相容互換的引擎(例如Allaire JRun 、Apache JServ)。

從理論上來說,Active Server Pagesb允許使用絕大多數與所有scripting語言以及幾種相配的ActiveX的scripting引擎中的一種(然而在實務作業中,除NT/IIS/VBScript/JScirpt的組合之外,其它組合的問題都非常多),由於PHP4的scriptingz引擎(Zend)目前在理論上是與PHP程式設計語言分離的,所以PHP4現在也算是一種分離式的獨立scripting技術了。

圖2.5列出了一個簡單的伺服端scripting語言的範例,根據伺服端原始碼和用戶端原始碼,從資料庫即時產生一個頁面。我們含括了資料庫呼叫(在本書的Part II之前,目前先不進行細部講解),並略掉了一些含括的檔案,因為這個例子的目的是顯示PHP的最終成品,而不是成為正式作業可執行的原始碼使用

以下是伺服器上的原始碼

這是同一個頁面在到達用戶端時的原始碼呈現形式:

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


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
簡單地說明PHP會話的概念。簡單地說明PHP會話的概念。Apr 26, 2025 am 12:09 AM

phpsessionstrackuserdataacrossmultiplepagerequestsusingauniqueIdStoredInAcookie.here'showtomanageThemeffectionaly:1)startAsessionWithSessionWwithSession_start()和stordoredAtain $ _session.2)

您如何循環中存儲在PHP會話中的所有值?您如何循環中存儲在PHP會話中的所有值?Apr 26, 2025 am 12:06 AM

在PHP中,遍歷會話數據可以通過以下步驟實現:1.使用session_start()啟動會話。 2.通過foreach循環遍歷$_SESSION數組中的所有鍵值對。 3.處理複雜數據結構時,使用is_array()或is_object()函數,並用print_r()輸出詳細信息。 4.優化遍歷時,可採用分頁處理,避免一次性處理大量數據。這將幫助你在實際項目中更有效地管理和使用PHP會話數據。

說明如何使用會話進行用戶身份驗證。說明如何使用會話進行用戶身份驗證。Apr 26, 2025 am 12:04 AM

會話通過服務器端的狀態管理機制實現用戶認證。 1)會話創建並生成唯一ID,2)ID通過cookies傳遞,3)服務器存儲並通過ID訪問會話數據,4)實現用戶認證和狀態管理,提升應用安全性和用戶體驗。

舉一個如何在PHP會話中存儲用戶名的示例。舉一個如何在PHP會話中存儲用戶名的示例。Apr 26, 2025 am 12:03 AM

Tostoreauser'snameinaPHPsession,startthesessionwithsession_start(),thenassignthenameto$_SESSION['username'].1)Usesession_start()toinitializethesession.2)Assigntheuser'snameto$_SESSION['username'].Thisallowsyoutoaccessthenameacrossmultiplepages,enhanc

哪些常見問題會導致PHP會話失敗?哪些常見問題會導致PHP會話失敗?Apr 25, 2025 am 12:16 AM

PHPSession失效的原因包括配置錯誤、Cookie問題和Session過期。 1.配置錯誤:檢查並設置正確的session.save_path。 2.Cookie問題:確保Cookie設置正確。 3.Session過期:調整session.gc_maxlifetime值以延長會話時間。

您如何在PHP中調試與會話相關的問題?您如何在PHP中調試與會話相關的問題?Apr 25, 2025 am 12:12 AM

在PHP中調試會話問題的方法包括:1.檢查會話是否正確啟動;2.驗證會話ID的傳遞;3.檢查會話數據的存儲和讀取;4.查看服務器配置。通過輸出會話ID和數據、查看會話文件內容等方法,可以有效診斷和解決會話相關的問題。

如果session_start()被多次調用會發生什麼?如果session_start()被多次調用會發生什麼?Apr 25, 2025 am 12:06 AM

多次調用session_start()會導致警告信息和可能的數據覆蓋。 1)PHP會發出警告,提示session已啟動。 2)可能導致session數據意外覆蓋。 3)使用session_status()檢查session狀態,避免重複調用。

您如何在PHP中配置會話壽命?您如何在PHP中配置會話壽命?Apr 25, 2025 am 12:05 AM

在PHP中配置會話生命週期可以通過設置session.gc_maxlifetime和session.cookie_lifetime來實現。 1)session.gc_maxlifetime控制服務器端會話數據的存活時間,2)session.cookie_lifetime控制客戶端cookie的生命週期,設置為0時cookie在瀏覽器關閉時過期。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SecLists

SecLists

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

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器