PHP概述 Anny @T.F.G,2004/4/13
「靜態」VS.「動態」 我們要用 PHP(Hypertext Preprocessor) 做什麼?最簡單的目的是為了要產生「動態」的網頁。 這裡所謂的「動態」,絕不是指網頁上有幾個會動的 GIF 圖檔,或是有個川流不息的走馬燈,我所指是動態的「內容」。 舉個例子來看,我們想在網頁上呈現一些最新的消息,當訊息要更新時,我們得重新編輯該網頁(HTML 檔)。在這種情況下,這個網頁是「靜態」的,因為它的內容不能即時更新。 如果改寫這個網頁,在其中加入存取資料庫的語法,使這個網頁能自動從資料庫擷取最新資訊的話,那麼它就是個「動態」的網頁了;以後,無論是訊息的增加或異動,都只要從資料庫中著手,無須再去修改這個網頁了。
運作架構--「靜態」網頁 當 User 透過 Internet 向 Web Server 提出需求,要求瀏覽某個 HTML 檔案時,如果 Web Server 上確實有該網頁的話,會直接將其內容回應給 User。
運作架構--「動態」網頁 當 User 向 Web Server 要求瀏覽某個 PHP 檔案時,Web Server 會先將其內容轉給 PHP Engine 處理。在處理的過程中,必要的話,還能搭配 Database 或 File System 共同作業,然後再將「加工」處理過的內容回傳給 Web Server,最後再送到 User 面前。
「靜態」網頁範例 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <title>範例</title> </head> <body> <h1>Hello World!</h1> <h2>Hello World!</h2> <h3>Hello World!</h3> <h4>Hello World!</h4> <h5>Hello World!</h5> <h6>Hello World!</h6> </body> </html>
「動態」網頁範例 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <title>範例</title> </head> <body> <? for ( $i=1; $i<=6; $i++ ) echo "<h" . $i . ">Hello World!</h" . $i . ">\n"; ?> </body> </html>
簡單的歸納 副檔名為 html 的網頁會被 Web Server 直接送出,副檔名為 php 的網頁會先經 PHP Engine 處理再送出。 即使網頁內容含有 PHP 碼,在經處理之後,輸出到使用者面前的只剩下 HTML 碼,原始內容不但可以受到保護(不被竊取),使用者使用何種瀏覽器也不會受到侷限。 PHP 是一種內嵌式的語言,它被嵌入 HTML 碼之中,彌補純 HTML 碼無法進行運算處理的缺憾。
PHP基本語法(1) 在 HTML 中嵌入 PHP 要在 HTML 中加入 PHP,有以下四種做法: <? echo ("第一種方法!"); ?> <?php echo ("第二種方法!"); ?> <script language="php"> echo ("第三種方法!"); </script>
PHP基本語法(2) 資料型態 PHP 支援 integer, double, string, array, object 等五種資料型態。
Integer(整數型別) 在 32 位元的作業系統中,它的有效範圍為 -2,147,483,648 ~ 2,147,483,647。要使用十六進位整數可以在面加 0x;要使用八進位整數可以在面加 0。 例: <? $a = 1234; // 十進位 $a = -1234; // 負數 $a = 0123; // 八進位 $a = 0x12; // 十六進位 ?>
Double(浮點數型別) 在 32 位元的作業系統中,它的有效範圍為 1.7E-308 ~ 1.7E+308。 例: <? $a = 1.234; $a = 1.2e3; ?>
String(字串型別) 在 PHP 中有三種指定字串的方法:雙引號(“)、單引號(‘),以及所謂 heredoc 語法(<<<)。 雙引號 包含在雙引號裡頭的可以是一般文字字串,可以含有單引號;如果含有變數的話,會以該變數的值代入。與 C、Perl 一樣,PHP 也允許以「\」代表跳脫(escape)字元,在雙引號中加入具有特殊用途的符號,如: \n:換行(newline) \r:送出 CR(carriage) \t:跳位(Tab) \\:反斜線(backslash) \$:錢字號(dollar sign) \“:雙引號(double-quote) 例: <? $str_1 = "I am here!"; $str_2 = "str_1 : $str_1"; echo $str_2; ?>
String(字串型別) 2. 單引號 使用單引號要注意的是,在單引號中的變數不會以變數值代入。另外,可以被 escape 的字元只有兩個:\‘ 與 \\。 例: <? $str_1 = ’I am here!‘; $str_2 = ’str_1 : $str_1‘; echo $str_2; ?> 輸出的結果將是:str_1 : $str_1,原先被包含在單引號中的變數($str_1)不會被其值所取代。
變數使用範例 <? $a1 = 2; $a2 = 4; $a3 = 6; $a4 = 8; $a5 = 10; $a6 = 12; $a7 = 14; $a8 = 16; $a9 = 18; $a10 = 20; 第一種做法: echo $a1; echo $a2; echo $a3; echo $a4; echo $a5; echo $a6; echo $a7; echo $a8; echo $a9; echo $a10; 第二種做法: for ( $i=1; $i<=10; $i++ ) echo ${"a" . $i}; ?>
圓面積計算器表單設計(circle.htm) 看一下畫面: http://www.fg.tp.edu.tw/~anny/artweb/php/circle.htm
圓面積計算器PHP程式(circle.php) $PI=3.1415926; $radius=$HTTP_POST_VARS['radius']; echo "圓半徑=".$radius."單位<br>"; $area = $radius * $radius * $PI; echo "圓面積= ".$area."平方單位"; ?>
BMI表單設計(bmi.htm)
BMI.php程式範例 $name=$HTTP_POST_VARS[‘name’]; //從表單接收姓名變數 $sex = $HTTP_POST_VARS[‘sex’]; //從表單接收性別變數 $name=$HTTP_POST_VARS[‘name’]; //從表單接收姓名變數 $height = $HTTP_POST_VARS[‘height’]; //從表單接收身高變數 $weight=$HTTP_POST_VARS[‘weight’]; //從表單接收體重變數 $BMI = 10000 * $weight / ($height * $height); //計算BMI公式 echo “你的BMI值為 ”.$BMI. “<br>”; //輸出BMI結果 if ($BMI <= 18) //根據不同BMI,給予回饋 echo "多吃點!!!你太瘦了喔!"; else if ($BMI >18 && $BMI <20) echo "你有點輕喔!"; else if ($BMI >=20 && $BMI <25) echo "理想體重。標準身材!!!"; else if ($BMI >=25 && $BMI<30) echo "肥胖!!"; else echo "過重!!!"; ?>