文章目錄
- 一、預備知識:PHP環境的搭建
- 二、第一個PHP頁面
- 三、實用的指令碼
- 四、處理表單
- 五、在新版本的PHP中使用舊的PHP代碼
【PHP系列教程】是根據現有《PHP Manual》進行收集和整理所得,所有代碼都已經測試通過。在轉載過程中,請註明出處。
一、預備知識:PHP環境的搭建
環境的搭建在前面已經給出了詳細的說明,網址為:http://blog.csdn.net/rocket5725/archive/2009/12/28/5090489.aspx。
二、第一個PHP頁面
在WEB伺服器根目錄下D:/Program Files/Apache Software Foundation/Apache2.2/htdocs下建立一個檔案名稱為Hello.php,然後完成如下內容。
<html><br /><head><br /> <title>PHP Tes</title><br /></head><br /><body><br /><?php echo "<p>Hello World</p>"; ?><br /></body><br /></html>
在瀏覽器的地址欄裡輸入 URL 訪問這個檔案,在結尾加上“/hello.php”。如果您在本地開發,那麼這個 URL 一般是 http://localhost/hello.php 或者 http://127.0.0.1/hello.php,當然這取決於 WEB 伺服器的設定。(Apache 的設定檔是 httpd.conf)。如果所有的設定都正確,那麼這個檔案將被 PHP 解析,瀏覽器中將會輸出如下結果:Hello World
該程式非常的簡單,它僅僅只是利用了 PHP 的 echo() 語句顯示了 Hello World。您一定不會滿足與此。
以上例子的目的是為了顯示 PHP 特殊標識符的格式。在這個例子中,我們用 <?php 來表示 PHP 標識符的起始,然後我們放入 PHP 語句並通過加上一個終止標識符 ?> 來退出 PHP 模式。您可以根據您的需要在 HTML 檔案中像這樣開啟或關閉 PHP 模式。
三、實用的指令碼
現在讓我們來編寫一些更實用的指令碼。我們將檢查瀏覽頁面的訪問者用了什麼類型的瀏覽器。要達到這個目的,我們需要檢查使用者的 agent 字串,它是瀏覽器發送的 HTTP 要求的一部分。該資訊被儲存在一個變數中。在 PHP 中,變數總是以一個美元符開頭。我們現在感興趣的變數是 $_SERVER["HTTP_USER_AGENT"]。
1、要顯示該變數,我們只需簡單的進行如下操作:
<html><br /> <head><br /> <title>Example</title><br /> </head><br /> <body><br /> <?php echo $_SERVER["HTTP_USER_AGENT"]; ?><br /> </body><br /></html>
該指令碼的輸出可能是:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
PHP 有很多種不同類型的變數。在以上例子中我們列印了一個數組的元素。數組是一類非常有用的變數。
2、利用phpinfo()來顯示所有預定義變數
<html><br /> <head><br /> <title>Example</title><br /> </head><br /> <body><br /> <?php phpinfo(); ?><br /> </body><br /></html>
如果您在您的瀏覽器中開啟這個檔案,您將看到關於 PHP 完整的資訊,以及所有您可以使用的變數列表。
您可以在一個 PHP 標識中加入多個 PHP 語句,也可以建立一個代碼塊來做比簡單的 echo 更多的事情。例如,如果我們需要檢查 Internet Explorer,我們可以進行如下操作:
<?php<br />if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {<br /> echo "You are using Internet Explorer<br />";<br />}<br />?>
該指令碼可能顯示為:
You are using Internet Explorer
3、混合PHP與HTML模式
<?php<br />if (strpos($_SERVER["HTTP_USER_AGENT"], "MSIE") !== false) {<br />?><br /><h3>strpos must have returned non-false</h3><br /><center><b>You are using Internet Explorer</b></center><br /><?php<br />} else {<br />?><br /><h3>strpos must have returned false</h3><br /><center><b>You are not using Internet Explorer</b></center><br /><?php<br />}<br />?>
該指令碼可能顯示為:
<h3>strpos must have returned no-false</h3><center><b>You are using Internet Explorer</b></center>
和以上我們用一個 PHP 的 echo 語句來輸出不同的是,我們跳出了 PHP 模式來直接寫 HTML 程式碼。這裡很值得注意的一點是,對於這兩種情況而言,指令碼的邏輯效率是相同的。在判斷了 strpos() 函數的傳回值是 TRUE 或是 FALSE,也就是判斷了字串 MSIE 是否被找到之後,最終只有一個 HTML 塊被發送給瀏覽者。
四、處理表單
PHP 一個很有用的特點體現在它處理 PHP 表單的方式。您需要理解的非常重要的原理,是表單的任何元素都在您的 PHP 指令碼中自動生效。
以下是一個簡單的HTML表單:
<form action="action.php" method="POST"><br /> Your name: <input type="text" name="name" /><br /> Your age: <input type="text" name="age" /><br /> <input type="submit"><br /></form><br />
該表單中並沒有什麼特殊的地方,其中沒有使用任何特殊的標識符。當使用者填寫了該表單並點擊了提交按鈕,頁面 action.php 將被調用。在該檔案中,您可以加入如下內容用於列印來自表單的內容:
Hi <?php echo $_POST["name"]; ?>.<br />You are <?php echo $_POST["age"]; ?> years old.
該指令碼的輸出可能是:
Hi Xue-Jamy.You are 25 years old.
該指令碼進行的工作應該已經很明顯了,這兒並沒有其它更複雜的內容。PHP 將自動為您設定 $_POST["name"] 和 $_POST["age"] 變數。在這之前我們使用了自動全域變數 $_SERVER,現在我們引入了自動全域變數 $_POST,它包含了所有的 POST 資料。請注意我們的表單提交資料的方法(method)。如果我們能使用了 GET 方法,那麼表單中的資訊將被儲存到自動全域變數 $_GET 中。如果您並不關心請求資料的來源,您也可以用自動全域變數 $_REQUEST,它包含了所有 GET、POST、COOKIE 和 FILE 的資料。
五、在新版本的PHP中使用舊的PHP代碼
現在,PHP 已經發展成為一種流行的指令碼語言,您可以在很多公用的資源裡找到您可以在您自己的指令碼中重新利用的代碼。PHP 語言的開發人員為向下相容性下了很多功夫,因此在新版本的 PHP 下,老版本的代碼應該可以在不作任何改動的情況下(理想地)運行。不過實際上,我們還是必須對老的代碼做一些改動。
有可能影響到老版本的代碼的最重要的兩點改動分別是:
(1) 取消了舊的 $HTTP_*_VARS 數組(在函數或者方法中他們原本是全域變數)。PHP 4.1.0 版本引入了如下自動全域陣列變數: $_GET、$_POST、 $_COOKIE、$_SERVER、 $_FILE、$_ENV、$_REQUEST 以及 $_SESSION。 老的 $HTTP_*_VARS 數組,諸如 $HTTP_POST_VARS 等,從 PHP 3 就已經開始使用,它們仍然存在。 在 PHP 5.0.0 中,長的 PHP 預定義數組可以通過設定 register_long_arrays 來屏蔽。
(2) 外部變數不再預設得被註冊為全域變數。也就是說,從 PHP 4.2.0 版本開始,$php.ini; 中的設定選項 register_globals 預設值變成了 off。我們建議您用以上提到的自動全域陣列變數來訪問這些值。但可能老的指令碼、書籍以及教程都可能建立在該設定為 on 的基礎上。如果該選項被設定為 on,則您便可以在 URL http://www.example.com/foo.php?id=42 中直接使用變數 $id。但不管被設定為 on 還是 off,$_GET['id'] 一直有效。