Introduction to PHP
靜態網頁 Step 1:Client 透過Internet 向Web Server 提出瀏覽某個HTML 檔案的需求。 Step 2:若Web Server 上有該網頁的話,便將其內容回傳給Client。
動態網頁 Step 1:Client 透過Internet 向Web Server 提出瀏覽某個PHP 檔案的需求。 Step 2:Web Server 會先將其內容轉給PHP解譯程式處理。 Step 3:處理過程中,可搭配Database 共同作業(讀取/寫入資料)。 Step 4:然後再將處理過的內容回傳給Web Server。 Step 5:Web Server再將其回傳給Client。
什麼是PHP? PHP原名為Personal Home Page,PHP3之後改名為Hypertext Preprocessor 。 PHP可嵌入HTML之中,彌補純HTML 碼無法進行運算處理的缺憾,為目前廣泛運用在網頁程式撰寫的語言之ㄧ。 語法結構和C/C++、Java等語法相似。
什麼是PHP? *.html 的網頁會被Web Server 直接送出;*. php的網頁會先經PHP解譯程式處理後再送出。 即使網頁含有PHP 程式碼,經處理之後輸出到使用者的頁面也只會只剩下HTML 碼;原始內容可以受到保護(不被竊取),使用者也無須安裝PHP軟體。 任何的*.php檔皆是透過Server端的php.exe來解譯程式碼。
HTML語法
HTML語法
將php語法寫在php標籤裡, 如此一來, php.exe就知道要處理這段程式 經過php.exe的處理後, 會產生給client的網頁符合HTML語法 <html> <head> <title>Example</title> </head> <body> <?php echo "Hi, I'm a PHP script!"; ?> </body> </html> 將php語法寫在php標籤裡, 如此一來, php.exe就知道要處理這段程式 <html> <head> <title>Example</title> </head> <body> Hi, I'm a PHP script! </body> </html>
初探PHP 註解方式 PHP語法不一定要寫在HTML語法中,可以在上面、下面、獨立一份文件。 一個程式敘述結束時要有; /*註解*/ //註解 PHP語法不一定要寫在HTML語法中,可以在上面、下面、獨立一份文件。 一個程式敘述結束時要有;
PHP變數與資料型態 PHP主要有以下四種變數類型: 定義變數的方式是變數名稱前面加個$即可使用。 整數(integer) 浮點數(float) 布林(boolean) 字串(string) 定義變數的方式是變數名稱前面加個$即可使用。 變數名稱格式必須以英文字母或底線作為開頭。 變數有分大小寫
PHP變數與資料型態
PHP變數與資料型態 使用PHP變數不需預先宣告變數及資料型態。 給予變數值後,PHP會依照所給定的值自動定義型態
PHP變數與資料型態 變數的運算
簡單練習PHP變數 PHP原始碼 <?php $pi=3.14; $area=$pi*5*5; //計算半徑為5的圓面積 echo "半徑為5的圓面積為$area<br>" ?> 傳回來的html原始碼 半徑為5的圓面積為78.5<br> 顯示的結果為
PHP流程控制 if(條件1) { 條件1成立便執行此段程式; } elseif(條件2) { 條件2成立便執行此段程式; else { 以上條件皆不成立則執行此段程式; <?php $a=0; if($a>10){ echo "if"; } elseif($a==10){ echo "elseif"; else{ echo "else"; ?> 在瀏覽器顯示 else
PHP流程控制 while(條件) { 條件成立便一直重複執行此段程式;直到條件不成立為止; } 在瀏覽器顯示 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 9 PHP原始碼 <?php $a=0; while($a<10){ echo "$a<br>"; $a++; } ?>
PHP流程控制 for(初始值; 條件; 間隔) { 當條件成立便執行此段程式;直到條件不成立為止; } 在瀏覽器顯示 PHP原始碼 1 2 1 2 3 4 5 6 7 8 9 <?php for($a=0;$a<10;$a++){ echo "$a<br>"; } ?>
PHP流程控制 switch(條件) { case 條件1: 若條件等於條件1則執行此段程式; break; case 條件2: switch($a){ case 0: echo "0"; break; case 1: echo "1"; default: echo "x"; } ?> switch(條件) { case 條件1: 若條件等於條件1則執行此段程式; break; case 條件2: 若條件等於條件2 則執行此段程式; default: 若無相同條件則執行此段程式; } 瀏覽器顯示
傳遞資料 現在的網頁不單單只是單向的顯示網頁給使用者端, 更可以和使用者作互動 因此需要製作一個使用者介面讓使用者可以輸入的動作 Ex: Google搜尋引擎 因此需要製作一個使用者介面讓使用者可以輸入的動作 使用HTML來設計一個輸入的介面 表單(Form) Web server必須也要有個相對應的程式可以處理使用者輸入的資料, 並給予適當的回應
表單(Form) 先定義出一個表單, 在表單裡面可以有很多輸入欄位 會一次將一個表單裡面所有的輸入欄位送給web server 文字欄位(Text), 密碼欄位(Password), 單一選擇鈕(Radio), 多重選擇鈕(Check Box), 文字區塊:可輸入大量文字(Text Area) 會一次將一個表單裡面所有的輸入欄位送給web server
當資料傳送到server後, 由哪個php程式來處理這些資料 表單(Form) 表單的傳送方式有GET和POST GET:最大長度為255 ,會於網址尾端加上?變數名稱1=值&變數名稱2=值…。http;//localhost/get.php?a=1&b=2 POST:所傳訊息不會顯示,資料長度無限制。(伺服器的php還是會設定一限制) 當資料傳送到server後, 由哪個php程式來處理這些資料 選擇要使用GET或POST方式傳送資料
使用KompoZer製作表單 先定義出一個表單
選擇用GET或者是POST來傳送資料, 在這裡先選GET 定義表單 幫這個表單取個名字 使用哪個php來處理資料 選擇用GET或者是POST來傳送資料, 在這裡先選GET
定義表單欄位 按下Submit Button就會把資料送出 Text Area可提供大量文字輸入, 如:留言板 常用的表單欄位都在Form Field裡
將姓名的Text欄位取名為name, 之後傳送給server, name=John (假設輸入名字為John) 虛線範圍內即代表表單的內容範圍 欄位的名稱最好使用英文 將姓名的Text欄位取名為name, 之後傳送給server, name=John (假設輸入名字為John)
如果勾選是本系學生, 送給server的資料為check=on Check Box欄位 如果勾選是本系學生, 送給server的資料為check=on
如果選擇性別為男, 則送出的資料為sex=boy Radio Button欄位 因為Radio Button只能選擇其中一個, 所以他是一個Group具有多個選項, 所以同屬一個Group必須使用相同的Group Name 如果選擇性別為男, 則送出的資料為sex=boy
假設在TextArea輸入Hello World, 則送給server的資料為Message=Hello+World
Submit Button欄位 更詳細的網頁製作 按下Submit Button即代表將表單資料送出 Field Value的值會被顯示在button上
送出的資料為 http://pads8.cs.nthu.edu.tw:8000/get.php?key=John&check=on&sex=boy&Message=Hello+World&submit=submit
PHP程式如何處理GET的資料 使用GET傳到PHP的變數會存在一個名為$_GET的變數中,而這一個變數是一個陣列 http;//localhost/get.php?a=1&b=2則用$_GET[‘a’]; $_GET[‘b’]; 來接收資料
範例 使用PHP程式來處理資料 使用GET送出的資料 <?php $name=$_GET['name']; $sex=$_GET['sex']; $check=$_GET['check']; echo $name; echo "性別是$sex<br>"; if (strcmp("on",$check)==0){ echo "就讀本系"; } else{ echo "不是本系學生"; ?> http://pads8.cs.nthu.edu.tw:8000/get.php?key=John&check=on&sex=boy&Message=Hello+World&submit=submit 和PHP的String變數有關的function
今日練習 製作披薩訂單網頁 假設店裡只有三種披薩, 且一個訂單只能選擇其中一種披薩 如果訂購金額超過400元, 則不需外送費用; 若沒超過400, 需加收外送費用50元 請印出顧客此次消費的總金額
Reference PHP5網管實驗室 CGI程式入門 “PHP入門教學”, Little Chen, 虎尾科技大學資訊工程系 http://www.php5.idv.tw/html.php?mod=article&act=index&cid=3 CGI程式入門 http://ind.ntou.edu.tw/~dada/cgi/CGIprog.htm “PHP入門教學”, Little Chen, 虎尾科技大學資訊工程系 http://www.csie.nfu.edu.tw/phpBB2/download.php?id=1732&sid=2831850096e414beadd50967981c2536 PHP程式設計講義 http://km.tceb.edu.tw/~wsx/php/index.htm