發表文章

目前顯示的是 9月, 2015的文章

PHP教學-Include文件

伺服器端包含 (SSI) 用於新增可在多個頁面重複使用的函數、頁首、頁尾或元素。 include (或 require)語句會獲取指定文件中存在的所有文本/程式碼/標記,並複製到使用 include 語句的文件中。 包含文件很有用,如果 您需要在網站的多張頁面上引用相同的 PHP、HTML 或文本的話。 PHP include 和 require 語句 通過 include 或 require 語句,可以將 PHP 文件的內容插入另一個 PHP 文件(在伺服器執行它之前)。 include 和 require 語句是相同的,除了錯誤處理方面:     require 會產生致命錯誤(E_COMPILE_ERROR)並停止scripts     include 只產生警告(E_WARNING),並且scripts會繼續 因 此,如果您希望繼續執行,並向用戶輸出結果,即使包含文件已丟失,那麼請使用 include。否則,在框架、CMS 或者複雜的 PHP 套用程式編程中,請始終使用 require 向執行流引用關鍵文件。這有助於提高套用程式的安全性和完整性,在某個關鍵文件意外丟失的情況下。 包含文件省去了大量的工作。這意味著您可以為所有頁面新增標準頁頭、頁尾或者菜單文件。然後,在頁頭需要更新時,您只需更新這個頁頭包含文件即可。 語法 include 'filename'; 或 require 'filename'; PHP include 範例 例子 1 假設我們有一個名為 "footer.php" 的標準的頁尾文件,就像這樣: <?php echo "<p>Copyright © 2006-" . date("Y") . " W3School.com.cn</p>"; ?> 如需在一張頁面中引用這個頁尾文件,請使用 include 語句: <html> <body> <h1>歡迎訪問我們的首頁!</h1> <p>一段文本。</p> <p>一段文本。</p> <?php include 'footer.php

PHP教學-表單驗證 - 完成表單範例

PHP - 保留表單中的值 如需在用戶點 擊提交按鈕後在輸入字段中顯示值,我們在以下輸入字段的 value 屬性中增加了一小段 PHP scripts:name、email 以及 website。在 comment 文本框字段中,我們把scripts放到了 <textarea> 與 </textarea> 之間。這些scripts輸出 $name、$email、$website 和 $comment 變數的值。 然後,我們還需要顯示選中了哪個單選按鈕。對此,我們必須操作 checked 屬性(而非單選按鈕的 value 屬性): Name: <input type="text" name="name" value="<?php echo $name;?>"> E-mail: <input type="text" name="email" value="<?php echo $email;?>"> Website: <input type="text" name="website" value="<?php echo $website;?>"> Comment: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea> Gender: <input type="radio" name="gender" <?php if (isset($gender) && $gender=="female") echo "checked";?> value="female">Female <input type="radio" name=&

PHP教學-表單驗證 - 驗證 E-mail 和 URL

PHP - 驗證名字 以下程式碼展示的簡單方法檢查 name 字段是否包含字母和空格。如果 name 字段無效,則存儲一條錯誤消息: $name = test_inp ut($_POST["name"]); if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "只允許字母和空格!"; } 註釋:preg_match() 函數檢索字串的模式,如果模式存在則返回 true,否則返回 false。 PHP - 驗證 E-mail 以下程式碼展示的簡單方法檢查 e-mail 地址語法是否有效。如果無效則存儲一條錯誤消息: $name = test_input($_POST["name"]); if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "只允許字母和空格!"; } PHP - 驗證 URL 以下程式碼展示的方法檢查 URL 地址語法是否有效(這條正則表達式同時允許 URL 中的斜槓)。如果 URL 地址語法無效,則存儲一條錯誤消息: $name = test_input($_POST["name"]); if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "只允許字母和空格!"; } PHP - 驗證 Name、E-mail、以及 URL 現在,scripts是這樣的: 範例 <?php // 定義變數並設置為空值 $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name

PHP教學-表單驗證 - 必填字段

本節展示如何製作必填輸入字段,並新增需要時所用的錯誤消息。 PHP - 輸入字段 從上一節中的驗證規則中,我們看到 "Name", "E-mail" 以及 "Gender" 字段是必需的。這些字段不能為空且必須在 HTML 表單中填寫。 字段 驗證規則 Name 必需。必須包含字母和空格。 E-mail 必需。必須包含有效的電子郵件地址(包含 @ 和 .)。 Website 可選。如果選填,則必須包含有效的 URL。 Comment 可選。多行輸入字段(文本框)。 Gender 必需。必須選擇一項。 在上一節中,所有輸入字段都是可選的。 在 下面的程式碼中我們增加了一些新變數:$nameErr、$emailErr、$genderErr 以及 $websiteErr。這些錯誤變數會存檔被請求字段的錯誤消息。我們還為每個 $_POST 變數增加了一個 if else 語句。這條語句檢查 $_POST 變數是否為空(通過 PHP empty() 函數)。如果為空,則錯誤消息會存儲於不同的錯誤變數中。如果不為空,則通過 test_input() 函數發送用戶輸入資料: <?php // 定義變數並設置為空值 $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "Name is required"; } else { $name = test_input($_POST["name"]); } if (empty($_POST["email"])) { $emailErr = "Email is required"; } el

PHP教學-表單驗證

PHP 表單驗證 提示:在處理 PHP 表單時請重視安全性! 這些頁面將展示如何安全地處理 PHP 表單。對 HTML 表單資料進行適當的驗證對於防範黑客和垃圾郵件很重要! 我們稍後使用的 HTML 表單包含多種輸入字段:必需和可選的文本字段、單選按鈕以及提交按鈕: 上面的表單使用如下驗證規則: 字段 驗證規則 Name 必需。必須包含字母和空格。 E-mail 必需。必須包含有效的電子郵件地址(包含 @ 和 .)。 Website 可選。如果選填,則必須包含有效的 URL。 Comment 可選。多行輸入字段(文本框)。 Gender 必需。必須選擇一項。 首先我們看一下這個表單的純 HTML 程式碼: 文本字段 name、email 和 website 屬於文本輸入元素,comment 字段是文本框。HTML 程式碼是這樣的: Name: <input type="text" name="name"> E-mail: <input type="text" name="email"> Website: <input type="text" name="website"> Comment: <textarea name="comment" rows="5" cols="40"></textarea> 單選按鈕 gender 字段是單選按鈕,HTML 程式碼是這樣的: Gender: <input type="radio" name="gender" value="female">Female <input type="radio" name="gender" value="male">Male 表單元素 表單的 HTML 程式碼是這樣的: <form method="post"

PHP教學-表單處理

PHP 超全域變數 $_GET 和 $_POST 用於收集表單資料(form-data)。 PHP - 一個簡單的 HTML 表單 下面的例子顯示了一個簡單的 HTML 表單,它包含兩個輸入字段和一個提交按鈕: 範例 <html> <body> <form action="welcome.php" method="post"> Name: <input type="text" name="name"><br> E-mail: <input type="text" name="email"><br> <input type="submit"> </form> </body> </html> 當用戶填寫此表單並點擊提交按鈕後,表單資料會發送到名為 "welcome.php" 的 PHP 文件供處理。表單資料是通過 HTTP POST 方法發送的。 如需顯示出被提交的資料,您可以簡單地輸出(echo)所有變數。"welcome.php" 文件是這樣的: <html> <body> Welcome <?php echo $_POST["name"]; ?><br> Your email address is: <?php echo $_POST["email"]; ?> </body> </html> 輸出: Welcome John Your email address is john.doe@example.com 使用 HTTP GET 方法也能得到相同的結果: 範例 <html> <body> <form action="welcome_get.php" method="get"> Name: <

PHP教學-四種變數範圍比較:區域、全域、靜態、參數

PHP 是一種較為鬆散的語言( Loosely Typed Language ),當我們宣告一個變數時,不須指定變數的型別( type ),PHP 會自動根 據指派給該變數的值來判斷該變數的型別。 雖然在宣告變數時不須指定型別,但還有一項必須要指定的--變數的使用範圍( scope )。PHP 有四種不同的使用範圍:local、global、static、parameter,以下將分別介紹。 區域變數 (local variable)     在 function 中宣告     只能在宣告的 function 中使用 (local scope)     不同的 function 中可宣告相同名稱的區域變數     在宣告變數 function 結束時,區域變數也就消滅了     宣告時不需使用任何關鍵字 (keyword) <?php $a = 5; // 全域 function myTest() { echo $a; // 區域 } myTest(); ?> 上例不會輸入任何內容,因為 $a 在function 中未指定值。 全域變數 (global variable)     在 function 外宣告     除了 function 中的 script不能存取外,整個網頁中的 script 都可以存取該變數( global scope )     若要在 function 中使用全域變數,需使用關鍵字 global,見下例     在網頁關閉時,全域變數消滅 <?php $a = 5; $b = 10; function myTest() { global $a, $b;//注意這行 $b = $a + $b; } myTest(); echo $b; ?> 上例輸出 15。 global 變數一旦宣告之後,PHP 會將其放置在 $GLOBALS[index] 這個 array 中,其中 index 就是變數的名稱。我在可以從 function 內存取這個 array,也可以直接指定值給 array 中的某個元素來改變其值。我們將上例改寫如下: <?php $a = 5; $b = 10; function myTest() { $GLOBALS[&

PHP教學-全域變數 - 超全域變數

超全域變數 在 PHP 4.1.0 中引入,是在全部作用域中始終可用的內置變數。 PHP 全域變數 - 超全域變數 PHP 中的許多預定義變數都是「超全域的」,這意味著它們在一個script的全部作用域中都可用。在函數或方法中無需執行 global $variable; 就可以訪問它們。 這些超全域變數是:     $GLOBALS     $_SERVER     $_REQUEST     $_POST     $_GET     $_FILES     $_ENV     $_COOKIE     $_SESSION      $GLOBALS — 引用全域作用域中可用的全部變數 $GLOBALS 這種全域變數用於在 PHP script中的任意位置訪問全域變數(從函數或方法中均可)。 PHP 在名為 $GLOBALS[index] 的陣列中存儲了所有全域變數。變數的名字就是陣列的鍵。 下面的例子展示了如何使用超級全域變數 $GLOBALS: 範例 <?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?> 在上面的例子中,由於 z 是 $GLOBALS 陣列中的變數,因此在函數之外也可以訪問它。 PHP $_SERVER $_SERVER 這種超全域變數存檔關於報頭、路徑和script位置的訊息。 下面的例子展示了如何使用 $_SERVER 中的某些元素: 範例 <?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_REFE

PHP教學-命名空間(namespace)

PHP 命名空間(namespace)是在PHP 5.3中加入的 PHP 命名空間可以解決以下兩類問題:     用戶編寫的程式 碼與PHP內部的類/函數/常量或第三方類/函數/常量之間的名字衝突。     為很長的標識符名稱(通常是為了緩解第一類問題而定義的)新增一個別名(或簡短)的名稱,提高源程式碼的可讀性。 定義命名空間 預設情況下,所有常量、類和函數名都放在全局空間下,就和PHP支持命名空間之前一樣。 命名空間通過關鍵字namespace 來聲明。如果一個文件中包含命名空間,它必須在其它所有程式碼之前聲明命名空間。語法格式如下; < ?php // 定義程式碼在 'MyProject' 命名空間中 namespace MyProject; // ... 程式碼 ...   你也可以在同一個文件中定義不同的命名空間程式碼,如: < ?php namespace MyProject1; // MyProject1 命名空間中的PHP程式碼 namespace MyProject2; // MyProject2 命名空間中的PHP程式碼 // 另一種語法 namespace MyProject3 { // MyProject3 命名空間中的PHP程式碼 } ?> 在聲明命名空間之前唯一合法的程式碼是用於定義源文件編碼方式的 declare 語句。所有非 PHP 程式碼包括空白符都不能出現在命名空間的聲明之前。 <?php declare(encoding='UTF-8'); //定義多個命名空間和不包含在命名空間中的程式碼 namespace MyProject { const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } } namespace { // 全局程式碼 session_start(); $a = MyProject\connect(); echo MyProject\Connection::start(); } ?> 以下程式碼會出現語法錯誤:

PHP教學-日期與時間函數

日期與時間函數之一 電腦的標準時間是以Unix紀元(格林威治時間1970年1月1日00:00:00) 開始計算,以本文撰寫時間(2012年2月24日下午3時49分3秒)為例:從Unix紀元開始到現在已經經過了1393224543秒,這個秒數在 地球上的任何時區都是一樣的,範例如下: <?php $time=gettimeofday(); //取得現在時間 echo $time[sec],"<br>"; //Unix紀元開始到現在的秒數 ?> 說明: 函數gettimeofday取得的時間為一組陣列,有四個陣列成員,分別如下: 一、鍵「sec」為「Unix紀元開始到現在的秒數」 二、鍵「usec」為「微秒(microseconds):百萬分之一秒」 三、鍵「minuteswest」為「與格林威志時間的時差(換算成分鐘數)」 四、鍵「dsttime」為「夏令時間修正類型」 由於時間是不斷前進的,每一次重新整理時,輸出網頁的秒數會繼續往上加。 如果要將「Unix紀元開始到現在的秒數」轉換為本地時間,則要以函數date_default_timezone_set設定時區,再以時間函數date將時間格式化。以台北時間為例,範例如下: <?php date_default_timezone_set("Asia/Taipei"); //設定時區 $TWtime=date("Y-n-j G:i:s",1393224543); //將時間格式化 echo $TWtime; ?> 說明: 一、設定時區時,變更函數date_default_timezone_set雙引號內的引數即可,底下是幾個較常見的地點: 檀香山:Pacific/Honolulu(時區:-10.00) 洛杉磯:America/Los_Angeles(時區:-8.00) 紐約:America/New_York(時區:-5.00) 台北:Asia/Taipei(時區:8.00) 首爾:Asia/Seoul(時區:9.00) 一 般在資料儲存時,文章、新聞…等,多會寫入日期、時間,最精確的時間標籤是「Unix紀元開始到現在的秒數」,例如某個英文討論區的一篇文章,發言人在 洛杉磯的下午

PHP教學-自訂函數的回傳值

回傳值在自訂函數中的寫法如下: function 自訂函數的名稱(引數){ 子句; return 回傳值; } 範例如下: <?php function dress($who){ //換裝的函數 $who = "換裝、化妝完畢的".$who; return $who; } $actor = "女主角"; $actor = dress($actor); //換裝,把回傳值存入變數$actor。 echo $actor; ?>

PHP教學-自訂函數的陣列引數

《自訂函數的陣列引數》 自訂函數的引數為陣列時,寫法 與非陣列時一樣,引數在自訂函數中的位置如下: function 自訂函數的名稱(陣列引數){ 子句; } 範例如下: <?php $student = array( 314=>"劉邦",114=>"項羽",212=>"張良", 214=>"范增",215=>"蕭何",311=>"曹參", 115=>"項莊",313=>"龍且",111=>"韓信", 211=>"樊噲",112=>"英布",315=>"李斯", 213=>"趙高",312=>"嬴胡亥",113=>"項梁" ); function myarray($arr){ //自訂函數的引數存入陣列$arr ksort($arr); foreach($arr as $key=>$value){ echo $key."=>".$value."<br>"; } } myarray($student); //執行 myarray函數,引數為陣列$student ?> 說明: $student陣列在通過myarray函數後,按照陣列的鍵重新排列,並且逐一輸出在網頁上。

PHP教學-自訂函數中引數的預設值

自訂函數中引數的預設值》 引數的預設值在自訂函數中的寫法如下: function 自訂函數的名稱(引數=預設值){ 子句; } 範例: <?php function breakfast($food="火腿蛋三明治"){ if($food=="火腿蛋三明治"){ echo "小明今天早餐吃".$food."。"; }else{ echo "小明今天早餐換個口味,吃".$food."。"; } } breakfast(); //沒有引數時,$food為預設值 echo "<br>"; breakfast("飯糰"); //有引數時,$food為引數 ?>

PHP教學-自訂函數的引數

《自訂函數的引數》 引數在自訂函數中的位置如下 : function 自訂函數的名稱(引數){ 子句; } 範例如下: <?php function soup($food){ //自訂函數名稱為soup if($food==""){ //如果沒有引數 echo "白開水"; }else{ //如果有引數 echo $food.'湯'; } } soup($food); //執行自訂函數soup,引數為$food ?>

PHP教學-自訂函數

《自訂函數 function》 自訂函數是可以天馬行空的,內容可以只是簡短的一行,也可以是大大的數百行。自訂函數只要寫在程式碼中或含入程式碼中,就能隨時調用 他。自訂函數的標準格式如下: function 自訂函數的名稱(){ 子句; } 範例: <?php function myname(){ //自訂函數名稱為 myname echo "大魔王"; } myname(); //執行 myname函數 ?> 也可以寫成這樣: <?php myname(); //調用自訂函數的程式碼 function myname(){ echo "大魔王"; } ?> 說明: 範例的自訂函數 myname()的內容只有一行,調用 myname()時,會輸出「大魔王」三個字。前面說過,自訂函數只要寫在程式碼中即可隨時調用,因此,就算自訂函數寫在「調用自訂函數的程式碼」的後面,也不會影響執行結果。

PHP教學-陣列排序用的函數

《陣列排序用的函數》 PHP程式內建的「陣列排序用 的函數」很多,基本上可以把陣列重新排序,針對不同的排序需求可以選擇指定的函式,排序的方式可依照鍵、可依照內容值、可升冪排列、可降冪排列、鍵與內容值的對應關係可保留也可不保留、可刪掉舊的鍵重編新的鍵…等。 範例如下: <table> <tr><td>《陣列成員最初的儲存順序》</td><td>《使用ksort函數重新排序後》</td></tr> <tr> <td> <?php $student = array( 314=>"溫瑞萱",114=>"隋棠",212=>"喻可唯",214=>"阿寶",215=>"迷你彬",311=>"溫瑞凡",115=>"宥勝",313=>"郝康德",111=>"蔡淑臻",211=>"林凡",112=>"李沛旭",315=>"藍天蔚",213=>"席曼寧",312=>"謝安真",113=>"溫昇豪"); foreach($student as $key => $value){ echo '$student['.$key."]".":".$student[$key]."<br>"; } ?> </td> <td> <?php ksort($student); //用ksort函數將陣列$student重新排序 foreach($student as $key => $value){ echo '$student['.$key."]".":".$student[$k

PHP教學-陣列專用迴圈

《foreach》 foreach是專門用來處理陣列的迴圈,他可以將陣列中的成員逐一(按照存放在記憶體中的順序)讀出來。格式如下: foreach(陣列名稱 as 陣列成員內容) { 子句; } 或 foreach(陣列名稱 as 鍵=>陣列成員內容){ 子句; } 範例: <?php $student = array( 314=>"溫瑞萱",114=>"隋棠",212=>"喻可唯",214=>"阿寶",215=>"迷你彬",311=>"溫瑞凡",115=>"宥勝",313=>"郝康德",111=>"蔡淑臻",211=>"林凡",112=>"李沛旭",315=>"藍天蔚",213=>"席曼寧",312=>"謝安真",113=>"溫昇豪"); foreach($student as $key=>$value){ echo '$student['.$key."]:".$value."<br> "; } ?> 說明: 一、設定陣列時,並未依照鍵的順序排放。 二、foreach迴圈執行時,會將陣列成員逐一(按記憶體中存放的順序)讀出直到全部讀完為止。在foreach的條件裡$student是陣列名稱,$key=>$value是「陣列鍵」對應「陣列成員內容」的關係。 三、使用單引號(')是為了顯示陣列名稱。

PHP教學-陣列

1. 《陣列(array)》 PHP的陣列(array)與變數一樣,也是一種容器,從外觀上看起來很像,只是變數只有一個值,而陣列可以有許多個值。 陣列的簡單範例如下: 1 2 3 4 5 6 7 8 9 10 11 12 <?php $student [1]= "郝康德" ; $student [2]= "孫大同" ; $student [3]= "謝安真" ; $student [4]= "藍天蔚" ; $student [5]= "溫瑞凡" ; $student [6]= "林凡" ; $student [7]= "喻可唯" ; $student [8]= "曾快樂" ; $student [9]= "田喬" ; $student [10]= "石柳" ; ?> 以上範例也可以寫成: 1 2 3 4 5 6 7 8 9 10 11 12 13 <?php $student = array (  //陣列的名稱叫$student 1=> "郝康德" , 2=> "孫大同" , 3=> "謝安真" , 4=> "藍天蔚" , 5=> "溫瑞凡" , 6=> "林凡" , 7=> "喻可唯" , 8=> "曾快樂" , 9=> "田喬" , 10=> "石柳" ); ?> 當陣列成員沒有指定鍵時,預設的鍵順序是0,1,2,3…,所以也可以寫成: 1 2 3 4 5 6 7 8 9 10

PHP教學-迴圈

迴圈(loop)是一種用來反覆執行某工作的工具,例如:輸出1~100的數字。 PHP程式內建的迴圈有: while do…while for foreach 等。以下逐一說明。 《while迴圈》 while迴圈的標準格式如下: while(條件){ 子句; } 在 程式執行通過while時,如果條件不成立,會直接略過while迴圈。當while條件成立時,迴圈會一直重複執行下去,永不停止,如果執行時間超過 PHP內定的時間上限,程式會因為超時而出錯。因此,在設定開始條件時,也要同時設定停止的條件。既然條件成立才會執行迴圈,要能停止迴圈的辦法就是在子 句中變動條件,使條件不成立。 <?php $a=1; while($a<=10){ echo $a."<br>"; $a++; //$a=$a+1;的縮寫 } ?> 說明:開始時變數$a=1,所以迴圈的開始條件($a<=10)成立。而迴圈每執行一次,$a的內容會加1,當迴圈執行完第10次時($a=11),迴圈的執行條件就不成立了。 《do…while迴圈》 do…while迴圈與while迴圈很像,唯一不同的是do…while迴圈是在每一次執行完迴圈時才去判斷條件是否成立,所以就算條件不成立,迴圈也會被執行一次。 標準語法如下: do{ 子句; }while(條件); 範例: <?php do{ $a++; echo $a."<br>"; }while($a<10); ?> 《for迴圈》 for迴圈比while迴圈複雜,在條件的部分有三個參數,分別是開始變數、執行條件、變動條件。語法如下: for(開始變數;執行條件;變動條件){ echo $c."<br>"; } 語法說明: 一、開始變數:只有在執行第1次迴圈時被認可,執行第2次迴圈時開始變數就會被忽略; 二、執行條件:只有在執行條件成立時,for迴圈才能被執行; 三、變動條件:與while迴圈一樣,執行條件如果一直不變,迴圈將永不停止,結果會因為逾時而出錯,所以迴圈必需有變動條件。 範例: <?php for($c=

PHP教學-控制流程

控制流程的靈活安排,可以讓PHP程式模擬現實中的所有事件。 控制流程有 if… if…else… if…elseif…else… switch ?:(三元運算)等。 《if控制流程》 if控制流程的寫法如下: if(條件){ 子句; } 如果小括號「()」裡的條件成立的話,就會執行大括號「{}」裡的子句,如果條件不成立則會跳過這一段if控制結構。 舉例來說,有一個用來測量太胖或太瘦的工具叫作BMI(身體質量指數),公式是:體重/身高^2(體重除以身高的平方。體重以公斤為單位、身高以公尺為單位。) 範 例中的兩個if控制結構,當我們沒有指定$h與$w的內容時,$h的內容為空($h==""),條件成立,$w的情形也一樣,所以兩個控制結構都會被執 行,並且指定$h為1.72、$w為60,程式執行到最後一行,會輸出BMI。所以範例會輸出一個身高1.72公尺、體重60公斤的人的BMI。 <?php if($h==""){ //如果$h的內容為空字串 $h = 1.72; //身高(單位:公尺) } if($w==""){ //如果$w的內容為空字串 $w = 60; //體重(單位:公斤) } echo "您的BMI=".$w/($h*$h); //輸出您的BMI ?> 《if…else…控制流程》 「if…else…控制流程」是PHP最常用的控制流程之一,為了容易理解,我把他稱之為「二分法」,意思是「如果條件成立的話就…否則就…」。 語法的流程如下: if(條件){ //條件成立就執行子句一 子句一; }else{ //否則就執行子句二 子句二; } 上述的例子,「子句一」與「子句二」之中只有一個子句會被執行。本站的會員與非會員就是使用這個控制流程。範例如下: <?php if($name!=""){ //會員登入時,顯示會員的暱稱 echo "暱稱:$name"; }else{ //否則顯示Guest(訪客) echo "暱稱:Guest"; } ?> 《if…elseif…else…控制流程》 「if…elseif

PHP教學 - 運算子(Operators) - 下

介紹PHP中運算子的用法,包含執行運算子(Execution Operator)、增值/減值運算子(Incrementing/Decrementing Operator)、邏輯運算子(Logical Operator)、字串運算子(String Operator)、陣列運算子(Array Operator)和型別運算子(Type Operator)。 8. 執行運 算子 執行運算子(Execution Operator)使用兩個倒斜點( ` )包夾要執行的指令,注意它並不是單引號,他會將執行結果的輸出回傳,可以存到變數。 2 3 4 5 6 7 8 9 10 11 <?php // 在Linux系統列出檔案 $output = `ls al`; // 在Windows系統列出檔案 $output = `DIR /A`; echo "<pre>{$output}</pre>" ; // 利用變數作為參數的用法 $param = "/A" ;  // 傳入的參數 $output = `DIR { $param }`; ?> 執行運算子必須在php.ini設定的 safe_mode 關閉的情況下才使用。另外也可使用 shell_exec() 函式來達到相同的功能: 2 3 4 5 6 7 8 9 <?php // 在Linux系統列出檔案 $param = "al" ;  // 傳入的參數 $output = shell_exec( "ls {$param}" ); // 在Windows系統列出檔案 $param = "/A" ;  // 傳入的參數 $output = shell_exec( "DIR {$param}" ); echo "<pre>{$output}</pre>" ; ?> 9. 增值/減值運算子 增值/減值運算