
- PHP 教程
- PHP - 首頁
- PHP - 簡介
- PHP - 安裝
- PHP - 歷史
- PHP - 特性
- PHP - 語法
- PHP - Hello World
- PHP - 註釋
- PHP - 變數
- PHP - Echo/Print
- PHP - var_dump
- PHP - $ 和 $$ 變數
- PHP - 常量
- PHP - 魔術常量
- PHP - 資料型別
- PHP - 型別轉換
- PHP - 型別轉換
- PHP - 字串
- PHP - 布林值
- PHP - 整數
- PHP - 檔案與 I/O
- PHP - 數學函式
- PHP - Heredoc 和 Nowdoc
- PHP - 複合型別
- PHP - 檔案包含
- PHP - 日期和時間
- PHP - 標量型別宣告
- PHP - 返回型別宣告
- PHP 運算子
- PHP - 運算子
- PHP - 算術運算子
- PHP - 比較運算子
- PHP - 邏輯運算子
- PHP - 賦值運算子
- PHP - 字串運算子
- PHP - 陣列運算子
- PHP - 條件運算子
- PHP - 展開運算子
- PHP - 空值合併運算子
- PHP - 比較運算子
- PHP 控制語句
- PHP - 決策
- PHP - If…Else 語句
- PHP - Switch 語句
- PHP - 迴圈型別
- PHP - For 迴圈
- PHP - Foreach 迴圈
- PHP - While 迴圈
- PHP - Do…While 迴圈
- PHP - Break 語句
- PHP - Continue 語句
- PHP 函式
- PHP - 函式
- PHP - 函式引數
- PHP - 按值傳遞
- PHP - 按引用傳遞
- PHP - 預設引數
- PHP - 具名引數
- PHP - 可變引數
- PHP - 返回值
- PHP - 傳遞函式
- PHP - 遞迴函式
- PHP - 型別提示
- PHP - 變數作用域
- PHP - 嚴格型別
- PHP - 匿名函式
- PHP - 箭頭函式
- PHP - 可變函式
- PHP - 區域性變數
- PHP - 全域性變數
- PHP 超全域性變數
- PHP - 超全域性變數
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP 檔案處理
- PHP - 檔案處理
- PHP - 開啟檔案
- PHP - 讀取檔案
- PHP - 寫入檔案
- PHP - 檔案是否存在
- PHP - 下載檔案
- PHP - 複製檔案
- PHP - 追加檔案
- PHP - 刪除檔案
- PHP - 處理 CSV 檔案
- PHP - 檔案許可權
- PHP - 建立目錄
- PHP - 列出檔案
- 面向物件 PHP
- PHP - 面向物件程式設計
- PHP - 類和物件
- PHP - 建構函式和解構函式
- PHP - 訪問修飾符
- PHP - 繼承
- PHP - 類常量
- PHP - 抽象類
- PHP - 介面
- PHP - 特性
- PHP - 靜態方法
- PHP - 靜態屬性
- PHP - 名稱空間
- PHP - 物件迭代
- PHP - 封裝
- PHP - Final 關鍵字
- PHP - 過載
- PHP - 克隆物件
- PHP - 匿名類
- PHP Web 開發
- PHP - Web 概念
- PHP - 表單處理
- PHP - 表單驗證
- PHP - 表單郵件/URL
- PHP - 完整表單
- PHP - 檔案包含
- PHP - GET 和 POST
- PHP - 檔案上傳
- PHP - Cookie
- PHP - Session
- PHP - Session 選項
- PHP - 傳送郵件
- PHP - 清理輸入
- PHP - Post-Redirect-Get (PRG)
- PHP - 快閃記憶體訊息
- PHP 高階
- PHP - MySQL
- PHP.INI 檔案配置
- PHP - 陣列解構
- PHP - 編碼規範
- PHP - 正則表示式
- PHP - 錯誤處理
- PHP - Try…Catch
- PHP - Bug 除錯
- PHP - 適用於 C 開發人員
- PHP - 適用於 PERL 開發人員
- PHP - 框架
- PHP - Core PHP 與框架
- PHP - 設計模式
- PHP - 過濾器
- PHP - JSON
- PHP - 異常
- PHP - 特殊型別
- PHP - 雜湊
- PHP - 加密
- PHP - is_null() 函式
- PHP - 系統呼叫
- PHP - HTTP 認證
- PHP - 交換變數
- PHP - Closure::call()
- PHP - 過濾後的 unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - 期望
- PHP - Use 語句
- PHP - 整數除法
- PHP - 已棄用的功能
- PHP - 已刪除的擴充套件和 SAPI
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI 程序
- PHP - PDO 擴充套件
- PHP - 內建函式
- PHP 有用資源
- PHP - 速查表
- PHP - 問答
- PHP - 快速指南
- PHP - 線上編譯器
- PHP - 有用資源
- PHP - 討論
PHP - Web 概念
PHP 是一種伺服器端指令碼語言,用於建立動態網頁。它是 Web 開發中最流行的程式語言之一。本章旨在讓您熟悉使用 PHP 進行 Web 應用程式開發的某些重要概念。
基於 Web 的應用程式是網頁的集合。網頁主要使用 HTML 標籤建立。HTML 由不同的 HTML 標籤組成,這些標籤需要定義頁面元素(如文字、影像、表格等)的外觀。因此,HTML 本質上建立了一個靜態網頁。
Web 應用程式託管在安裝了 PHP 模組的 HTTP 伺服器上。瀏覽器充當 http 客戶端,遵循 HTTP 協議與伺服器建立通訊。

如何在網頁上新增動態內容?
要在網頁上新增動態內容,有兩種可能性。
JavaScript 是一種客戶端指令碼語言,可以訪問 HTML 文件物件模型並在客戶端瀏覽器上呈現動態內容。JavaScript 程式碼可以嵌入到 HTML 頁面中。
瀏覽器可以以 HTML 表單元素的形式從使用者那裡收集資料,並將其傳送到 HTTP 伺服器進行處理。PHP 是一種廣泛使用的伺服器端處理語言。PHP 指令碼也可以嵌入到 HTML 頁面中。
示例
在以下指令碼中,嵌入在 HTML 中的 JavaScript 程式碼根據客戶端瀏覽器呈現當前日期,而 PHP 程式碼根據託管此指令碼的伺服器顯示當前日期。
<!DOCTYPE html> <html> <body> <script type="text/JavaScript"> document.write("Client's date :"+Date()+"\n"); </script> <?php date_default_timezone_set("Asia/Calcutta"); echo "server's date is " . date("Y-m-d") . "\n"; echo "The time is " . date("h:i:sa"); ?> </body> </html>
PHP 可以攔截和處理來自 HTML 表單的資料。這允許您從使用者那裡收集資訊。下一章討論 PHP 的表單處理。
PHP 可用於與 MySQL 和 PostgreSQL 等資料庫互動。這允許您儲存和檢索資料庫中的資料,並動態填充網頁或為 Web 應用程式提供支援。PHP 包含用於資料庫處理的 mysql、mysqli 和 PDO 擴充套件。
PHP 可以使用 HTTP GET 和 POST 方法處理從客戶端接收的資料。我們將在後面的章節中詳細討論 PHP 如何處理 GET/POST 方法。
HTTP 是一種無狀態協議。但是,它允許分別在伺服器和客戶端上維護會話和 Cookie。PHP 可用於建立和管理會話和 Cookie。會話允許您在使用者瀏覽網站時跟蹤各個使用者,而 Cookie 允許您在使用者的計算機上儲存資訊以供以後使用。在隨後的章節中,我們將學習 PHP 如何處理會話和 Cookie。
PHP 可用於將檔案上傳到您的 Web 伺服器。這允許您建立允許使用者上傳檔案(例如影像、影片或文件)的 Web 應用程式。
您可以使用 PHP 為您的網站建立登入頁面。當用戶輸入使用者名稱和密碼時,PHP 可以檢查資料庫以檢視使用者是否有效。如果使用者有效,PHP 可以登入使用者並將其重定向到網站的主頁。
識別瀏覽器和平臺
PHP 建立了一些有用的環境變數,可以在用於設定 PHP 環境的 phpinfo.php 頁面中看到。
PHP 設定的環境變數之一是HTTP_USER_AGENT,它標識使用者的瀏覽器和作業系統。
PHP 提供了一個函式 getenv() 來訪問所有環境變數的值。HTTP_USER_AGENT 環境變數中包含的資訊可用於建立適合瀏覽器的動態內容。
示例
以下示例演示瞭如何識別客戶端瀏覽器和作業系統。
注意 - 函式 preg_match() 在PHP 正則表示式 部分中進行了討論。
<?php function getBrowser() { $u_agent = $_SERVER['HTTP_USER_AGENT']; $bname = 'Unknown'; $platform = 'Unknown'; $version = ""; //First get the platform if (preg_match('/linux/i', $u_agent)) { $platform = 'linux'; } elseif (preg_match('/macintosh|mac os x/i', $u_agent)) { $platform = 'mac'; } elseif (preg_match('/windows|win32/i', $u_agent)) { $platform = 'windows'; } // Next get the name of the useragent yes seperately and for good reason if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent)) { $bname = 'Internet Explorer'; $ub = "MSIE"; } elseif(preg_match('/Firefox/i',$u_agent)) { $bname = 'Mozilla Firefox'; $ub = "Firefox"; } elseif(preg_match('/Chrome/i',$u_agent)) { $bname = 'Google Chrome'; $ub = "Chrome"; } elseif(preg_match('/Safari/i',$u_agent)) { $bname = 'Apple Safari'; $ub = "Safari"; } elseif(preg_match('/Opera/i',$u_agent)) { $bname = 'Opera'; $ub = "Opera"; } elseif(preg_match('/Netscape/i',$u_agent)) { $bname = 'Netscape'; $ub = "Netscape"; } // finally get the correct version number $known = array('Version', $ub, 'other'); $pattern = '#(?<browser>' . join('|', $known) . ') [/ ]+(?<version>[0-9.|a-zA-Z.]*)#'; if (!preg_match_all($pattern, $u_agent, $matches)) { // we have no matching number just continue } // see how many we have $i = count($matches['browser']); if ($i != 1) { //we will have two since we are not using 'other' argument yet //see if version is before or after the name if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){ $version= $matches['version'][0]; } else { $version= $matches['version'][1]; } } else { $version= $matches['version'][0]; } // check if we have a number if ($version == null || $version == "") {$version = "?";} return array( 'userAgent' => $u_agent, 'name' => $bname, 'version' => $version, 'platform' => $platform, 'pattern' => $pattern ); } // now try it $ua = getBrowser(); $yourbrowser = "Your browser: " . $ua['name'] . " " . $ua['version'] . " on " .$ua['platform'] . " reports: <br >" . $ua['userAgent']; print_r($yourbrowser); ?>
這在我的機器上產生了以下結果。根據您使用的裝置,此結果可能與您的計算機不同。
它將產生以下結果 -
Your browser: Google Chrome 54.0.2840.99 on windows reports: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
隨機顯示影像
PHP rand() 函式用於生成隨機數。此函式可以在給定範圍內生成數字。隨機數生成器應進行播種以防止生成規則的數字模式。這是使用srand() 函式實現的,該函式將其引數指定為種子數。
示例
以下示例演示瞭如何從四張影像中每次顯示不同的影像 -
<?php srand( microtime() * 1000000 ); $num = rand( 1, 4 ); switch( $num ) { case 1: $image_file = "/php/images/php_image_sample_1.jpg"; break; case 2: $image_file = "/php/images/php_image_sample_2.jpg"; break; case 3: $image_file = "/php/images/php_image_sample_3.jpg"; break; case 4: $image_file = "/php/images/php_image_sample_4.jpg"; break; } echo "Random Image : <img src=$image_file />"; ?>
它將產生以下結果 -

使用 HTML 表單
在處理 HTML 表單和 PHP 時需要注意的最重要的事情是,HTML 頁面中的任何表單元素都將自動可用於您的 PHP 指令碼。
示例
透過將原始碼放在 test.php 指令碼中來試用以下示例。
<?php if( $_POST["name"] || $_POST["age"] ) { if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) { die ("invalid name and name should be alpha"); } echo "Welcome ". $_POST['name']. "<br />"; echo "You are ". $_POST['age']. " years old."; exit(); } ?> <form action = "<?php <b>$_PHP_SELF</b> ?>" method = "POST"> Name: <input type = "text" name = "name" /> Age: <input type = "text" name = "age" /> <input type = "submit" /> </form>
它將產生以下結果 -

PHP 預設變數$_PHP_SELF 用於 PHP 指令碼名稱,當您單擊“提交”按鈕時,將呼叫相同的 PHP 指令碼併產生以下結果 -
method = "POST" 用於將使用者資料釋出到伺服器指令碼。將資料釋出到伺服器指令碼有兩種方法,這將在PHP GET 和 POST 章節中討論。
瀏覽器重定向
PHP header() 函式向瀏覽器提供原始 HTTP 標頭,可用於將其重定向到另一個位置。重定向指令碼應位於頁面頂端,以防止載入頁面的任何其他部分。
目標由Location: 標頭指定為header() 函式的引數。呼叫此函式後,可以使用exit() 函式停止解析其餘程式碼。
示例
以下示例演示瞭如何將瀏覽器請求重定向到另一個網頁。透過將原始碼放在 test.php 指令碼中來試用此示例。
<?php if( $_POST["location"] ) { $location = $_POST["location"]; header( "Location:$location" ); exit(); } ?> <p>Choose a site to visit :</p> <form action = "<?php <b>$_SERVER['PHP_SELF']</b> ?>" method ="POST"> <select name = "location">. <option value = "https://tutorialspoint.tw"> Tutorialspoint.com </option> <option value = "http://www.google.com"> Google Search Page </option> </select> <input type = "submit" /> </form>
它將產生以下結果 -
