Presentation is loading. Please wait.

Presentation is loading. Please wait.

PHP程式設計 二、HTML & PHP基本語法 建國科技大學 資訊管理學系 饒瑞佶.

Similar presentations


Presentation on theme: "PHP程式設計 二、HTML & PHP基本語法 建國科技大學 資訊管理學系 饒瑞佶."— Presentation transcript:

1 PHP程式設計 二、HTML & PHP基本語法 建國科技大學 資訊管理學系 饒瑞佶

2 PHP的由來 在古早古早的時候,也就是1994年。當時有個叫Rasmus Lerdorf的人,
他用Perl寫了一些後端的程式,記錄有哪些人看過他的線上履歷表。慢慢 地,一些網友對他所寫的程式碼產生興趣。於是,Rasmus Lerdorf就整理 這些程式碼,包裝成一個叫作 ”Personal Home Page”的工具。基於個人的 興趣,Rasmus Lerdorf又寫了一個腳本語言的核心引擎。然後,又加上了 能處理HTML表單輸入的工具,稱作 “Form Interpreter”簡稱FI。在1995年 完成的這個版本,當時稱作 “PHP FI”,也有人稱之為 ”PHP2”。 PHP/FI開發出來之後,受到網站開發者的極大的回響,使用PHP/FI來開發 網站程式的人越來越多。在1997年中的時候,PHP從Rasmus Lerdorf個人維 護的開發專案,轉變成一個重要的網站開發技術。PHP的開發與維護也轉由 一個由Rasmus Lerdorf本人和Andi Gutmans、Zeev Suraski、Stig Bakken、 Shane Cavaveo、以及Jim Winstead等人所組成的團隊來負責。在1998年6月 的時候,Zeev Suraski和Andi Gutmans改寫了PHP語言的解析器,並公佈這新 的版本,稱之為PHP3。

3 PHP簡介 PHP代表:超文本預處理器(PHP: Hypertext Preprocessor)。
PHP是開放源碼的通用腳本語言,特別適合用來開發網站程式,可以內嵌在HTML碼。 PHP程式的原始碼是純文字,所以可以用任何可處理純文字檔的文字編輯器,如:記事本、vi、emac等,來撰寫PHP程式。

4 PHP,ASP, JSP, VB Script, Java Script, DHTML 等
讓網頁活起來 傳統網頁:1.靜態的(Static),內容固定不變 2.不容易更新與維護 純HTML碼的網頁 動態網頁:1.內容是動態的 2.內容可以自動更新 3.互動性高 PHP,ASP, JSP, VB Script, Java Script, DHTML 等

5 HTML如何運作? HTML碼不受保護 步驟1:要求瀏覽網頁 A.htm 步驟2:下載A.htm 用戶端 伺服端 瀏覽器 網頁伺服器
步驟3:瀏覽器翻譯後顯示 HTML碼不受保護

6 PHP如何運作 ? PHP程式受到保護 步驟1:要求瀏覽網頁 A.php 步驟3:下載A.htm 用戶端 伺服端 瀏覽器
Apache網頁伺服器 用戶端 瀏覽器 步驟2:伺服器執行PHP程式並轉換成純HTML碼 PHP程式受到保護 要瀏覽PHP網頁,而不是開啟PHP網頁

7 Hyper Text Markup Language(HTML)
HTML本身並非程式設計,只不過是標示(Markup)、強調及組織一般性的文字。 WWW上製作HomePage的語言,是一種標記語言。需透過瀏覽器翻譯標記後方可呈現 。 HTML 標準之原始資料 (HTML 4.0, 1997/11, W3C) 除標準HTML標記外,各瀏覽器廠商也自訂專屬的標記

8 何謂標記語言? Tag Language 製作HTML文件的過程中必須加入所謂的標記【TAG】,好讓瀏覽器知道該如何處理及呈現原始文件的內容。 在HTML語法中,除了少數例外,大都是以:<XX>開始,以</XX>結束;其中XX就是HTML的標記。

9 Web Server vs. Browser Web Server Client 端 瀏覽結果會因Browser不同而不同
下載 HTML文件, 由客戶端瀏覽器執行 *.htm *.htm 瀏覽結果會因Browser不同而不同

10 HTML標記 有頭有尾,中間夾住所要顯示的文字或圖形 純文字檔(使用一般的文字編輯器就可以作業) 無大小寫之分
檔名需要是.HTM或是.HTML <標籤名稱  屬性 =“設定值”> ..要顯示之文件資料.. </標籤名稱> <Tag  Attributes ="Value"> ..Document Of Display.. </Tag>

11 HTML標記類別 表格標籤(Table Tags) 表單標籤(From Tags)
文件結構標籤(Document Structure Tags) 區段格式標籤(Block Formatting Tags) 字元格式標籤(Character Formatting Tags) 清單標籤(List Tags) 連結標籤(Anchor Tag) 多媒體標籤(Multimedia Tag) 表格標籤(Table Tags) 表單標籤(From Tags)

12 常見HTML編寫工具 OFFICE FrontPage(我們選用這個) Dreamweaver Coreldraw
Macromedia系列 : Flash, Director, Authoware 產生html碼容易,不過你要看的懂才有辦法修改 與加入新的東西

13 文件結構標籤 <html>...</html>:標示HTML文件的啟始,終止處
<head>...</head>:標示文件標頭區 <body>...</body>:標釋出文件主題區 <html>...</html>:標示HTML文件的啟始,終止處 <head>...</head>:標示文件標頭區 <body>...</body>:標釋出文件主題區

14 區段格式標籤 <title>...</title>:文件抬頭
<hi>...</hi>:i=1,2,..,6網頁標題 <hr>...</hr>:產生水平線 <br>...</br>:強迫換行 <p>...</p>:文件段落 <pre>...</pre>:以原始格式顯示 <address>...</address>:標註聯絡人姓名電話地址等資訊 <blockquote>...</blockquote>:區段引言標記 <html>...</html>:標示HTML文件的啟始,終止處 <head>...</head>:標示文件標頭區 <body>...</body>:標釋出文件主題區

15 字元格式標籤 <b>...</b>:粗體字 <i>...</i>:斜體字
<font>...</font>:改變字型設定 <center>...</center>:向中對齊 <blink>...</blink>:文字閃爍 <big>...</big>:加大字型 <small>...</samll>:縮小字型 <html>...</html>:標示HTML文件的啟始,終止處 <head>...</head>:標示文件標頭區 <body>...</body>:標釋出文件主題區

16 清單標籤 <ul>...</ul>:無編號清單 <ol>...</ol>:有編號清單
<li>...</li>:清單項目 <dl>...</dl>:定義式清單 <dd>...</dd>:定義描述 <dir>...</dir>:目錄式清單 <menu>...</menu>:選單式清單

17 連結標籤 <a>...</a>:建立超連結

18 多媒體標籤 <img>...</img>:嵌入影像
<embed>...</embed>:嵌入多媒體物件 <bgsound>...</bgsound>:背景音樂

19 標準HTML之架構 使用記事本練習 ….. <HTML>
<HEAD><TITLE>瀏覽器抬頭列顯示的訊息</TITLE></HEAD> <BODY> 網頁主體內容 </BODY> </HTML> 使用記事本練習 …..

20 HTML 表格標籤

21 表格元件 用以定義以橫列與直欄構成的表格。 包含許多選擇性元件與屬性。 <Table> …… </Table>

22 表格子元件 CAPTION 表格標題 TR 表格列 COL 表格欄 TH 儲存格標題 TD 儲存格資料 說明 每一子元件均包含若干屬性

23 基本表格樣本 <TABLE> <CAPTION>表格標題</CAPTION> <TR>
<TH>標題一<TH>標題二 <TD>第一列,內容一<TD>第一列,內容二 <TD>第二列,內容一<TD>第二列,內容二 </TABLE>

24 表格元件屬性 WIDTH 表格的寬度 HEIGHT 表格的高度 BORDER 表格的外框線寬度 FRAME 表格的外框線顯示方式
RULES 儲存格的框線顯示方式 CELLSPACING 儲存格間格大小 CELLPADDING 儲存格內邊留白大小 ALIGN 表格的水平排列方式 BGCOLOR 表格的底色 (背景色彩) BORDERCOLOR 表格的外框線顏色

25 表格寬度 - WIDTH 通常以下列兩種方式定義。 像素值: width = 200 百分比值: width = 20%
<table width = "200"> 格式

26 表格高度 - HEIGHT 通常以下列兩種方式定義。 像素值: height = "200" 百分比值: height = "50%"
<table height = "30%"> 格式

27 表格外框線寬度 - BORDER 以像素為表示單位。 如不指定,預設值為 0 ,即不顯示。 <table border="2">
格式

28 表格外框線顯示方式 - FRAME 共計九種顯示方式。 void: 不顯示外框線。 above: 只顯示上框線。
below: 只顯示下框線。 hsides: 只顯示水平框線。 vsides: 只顯示垂直框線。 lhs: 只顯示左框線。 rhs: 只顯示右框線。 box: 顯示所有框線。 border: 顯示所有框線。

29 表格內框線顯示方式 - RULES 共計五種顯示方式。 none: 不顯示內框線。 groups:只顯示列組與欄組間的框線。
rows: 只顯示水平框線。 cols: 只顯示垂直框線。 all: 顯示所有內框線。

30 表格框線色彩 - BORDERCOLOR 通常以下列兩種方式定義。 sRGB值: borderColor = "#FF0000" 顏色名稱:
borderColor = "red" <table borderColor= "red"> 格式

31 表格背景色彩 - BGCOLOR 通常以下列兩種方式定義。 sRGB值: bgColor = "#000080" 顏色名稱:
bgColor = "navy" <table bgColor = "navy"> 格式

32 儲存格間格大小 - CELLSPACING 定義儲存格與儲存格之間的間格。 通常利用像素大小來表示。
<table cellSpacing="1"> 格式

33 儲存格內留白大小–CELLPADING 定義儲存格邊緣與內含文字的間隔。 通常利用像素大小來表示。
<table cellPading="1"> 格式

34 表格水平排列方式 – ALIGN 共計三種排列方式。 <table align = "center"> left: 靠左對齊。
right: 靠右對齊。 center: 置中。 <table align = "center"> 格式

35 畸形表格的產生 ColSpan 與 RowSpan 屬性 ColSpan=3 RowSpan=2 ColSpan=2

36 HTML 表單標籤 提供使用者輸入傳送資訊 表單需必須配合著CGI、JAVA Script程式或是ASP程式來運作,不然表單單獨存在的意義並不大。 您的網頁將擺脫單向呈現,而開始邁入和使用者互動的階段!

37 表單基本格式 <FORM method=post或get action=處理表單程式> 不同表單類型 …. 送出/重寫按鈕
填寫完畢按下送出按鈕 表單 .htm或.php 處理程式 Abc.php 送回結果 .htm 表單與處理程式可以是同一個檔案

38 文字輸入列 每個表單之所以會有不同的類型,原因就在於 TYPE=“表單類型”設定的不同而已,我們就先 來看看第一個類型:文字輸入列。
文字輸入列的形態就是TYPE="TEXT,其使用方法如下: 呈現結果 姓名: 原始碼 <FORM> 姓名:<INPUT TYPE="TEXT" NAME="NAME" SIZE="20"> </FORM>

39 單選核取表單 利用TYPE=“RADIO”就會產生單選核取表單, 單選核取表單通常是好幾個選項一起擺出來供
使用者點選,一次只能從中選一個,故為單選 核取表單。 呈現結果 性別:男 女 原始碼 <FORM> 性別: 男 <INPUT TYPE="RADIO" NAME="SEX" VALUE="BOY"> 女 <INPUT TYPE="RADIO" NAME="SEX" VALUE="GIRL"> </FORM>

40 複選核取表單 利用TYPE=“ CHECKBOX ”就會產生複選核取表單, 複選核取表單通常是好幾個選項一起擺出來供使用者
點選,一次可以同時選好幾個,故為複選核取表單。 呈現結果 喜好: 電影 看書 原始碼 <FORM> 喜好: <INPUT TYPE="CHECKBOX" NAME="SEX" VALUE="MOVIE">電影 <INPUT TYPE="CHECKBOX" NAME="SEX" VALUE="BOOK">看書 </FORM>

41 密碼表單 利用TYPE=“ PASSWORD ”就會產生一個密碼表單, 密碼表單和文字輸入表單長得幾乎一樣,差別就在於
密碼表單在輸入時全部會以星號來取代輸入的文字, 以防他人偷窺。 呈現結果 請輸入密碼: 原始碼 <FORM> 請輸入密碼:<INPUT TYPE="PASSWORD" NAME="INPUT"> </FORM>

42 送出/重寫按鈕 通常我們表單填完之後,都會有一個送出按鈕以及清除 重寫的按鈕,分別是利用TYPE=“ SUBMIT ”及
TYPE=" RESET "來產生,相當的簡單易用。 呈現結果 原始碼 <FORM> <INPUT TYPE="SUBMIT" VALUE="送出資料"> <INPUT TYPE="RESET" VALUE="重新填寫"> </FORM>

43 大量文字輸入元件 有時候我們會希望讓使用者輸入比較大量的文字,此時, 文字輸入列就顯得不敷使用,因此我們就可以利用
<TEXTAREA></TEXTAREA>來產生一個可以輸入大量文 字的元件,夾在兩個標籤中的文字會出現在框框中,可作 為預設文字。 呈現結果 請輸入您的意見: 原始碼 <FORM> 請輸入您的意見:<BR> <TEXTAREA NAME="TALK" COLS="20" ROWS="3"></TEXTAREA> </FORM>

44 下拉式選單 下拉式選單令整個網頁看起來有很專業的感覺,我們 只要利用<SELECT NAME=“名稱”>便可以產生一個下
拉式選單,另外,還需要配合<OPTION>標籤來產生選 項,這樣才算完整喔! 呈現結果 您喜歡看書嗎?: 原始碼 <FORM> 您喜歡看書嗎?: <SELECT NAME="LIKE"> <OPTION VALUE="非常喜歡">非常喜歡 <OPTION VALUE="還算喜歡">還算喜歡 <OPTION VALUE="不太喜歡">不太喜歡 <OPTION VALUE="非常討厭">非常討厭 </SELECT> </FORM>

45 隱藏欄位 表單中有時有些東西因為某些因素,不想讓使用者看到, 但因程式需要卻又不得不存在,此時,我們就可以利用
TYPE=" HIDDEN "來產生一個隱藏的欄位。 呈現結果 隱藏欄位: 原始碼 <FORM> 隱藏欄位:<INPUT TYPE="HIDDEN" NAME="NOSEE" VALUE="看不到"> </FORM>

46 PHP 基本語法介紹

47 PHP基本語法 內嵌在HTML標籤中,使用 <?php php程式 ?> 或 (課本使用)
<% php程式 %> 或(ASP亦使用此表示,要設定php.ini ) <script language=“php”>php程式</script> 標示 (ex6-2) 需要經由Apache Server轉譯後才可以動作 副檔名為 .php或 .php3 每個命令結尾需要加上;

48 PHP基本語法 程式註解,使用 // 表示單行註解 /* 中間文字是註解 */ 表示多行註解 註解內不可以再出現註解符號
/* 中間文字是註解 */ 表示多行註解 註解內不可以再出現註解符號 PHP不像HTML可以直接使用瀏覽器執行

49 PHP基本語法-基本輸出 輸出指令 echo() 與 print() (ex 6-4) PHP與HTML 嵌入HTML標籤中
單引號與雙引號對變數處理的方式不同 使用echo會比print略有效率。 PHP與HTML 嵌入HTML標籤中 在HTML標籤外 獨立存在

50 PHP 資料型態

51 PHP資料型態 在PHP中,變數之前必需加$的符號 PHP的大小寫是有差別的,所以在使用變數時,須注意大小寫是否一致
變數使用前不需要事先宣告 使用變數時被指定的值的型態就是變數的型態 PHP共有 8 種資料型態

52 PHP資料型態 名稱 型態 範例 Boolean 布林型態 $a=True; Integer 整數型態 $a=10; Float 浮點數型態
String 字串型態 $a=“Hello !!”; Array 陣列型態 $a[0]=20; Object 物件型態 $a=new Objectclass; Resource 外部資源 $a=mysql_connect(); Null Null型態 $a=NULL;

53 Boolean布林型態 只有真(True)與假(False)兩種值 可以直接設定 $a=True; $b=False;
其他型態轉換成布林型態 p.7-4

54 Integer整數型態 10進制,8進制(0)與16進制(0x)三種 表示方法 [+|-] [0|0x] 數值 $a=123;(10進制)
$b=-456;(10進制) $c=0123;(8進制相當於10進制的83) $d=0x45;(16進制相當於10進制的69) (範例7-1)

55 Double浮點數型態 一般與指數二種表示法 表示方法 $a=12.3456;(一般) $b=-123.456;(一般負浮點數)
$c=1.23e-2;(指數) $d=1.23e2;(指數) (範例7-2)

56 String型態 文字的串列組合 在 PHP 中有三種指定字串的方法: 雙引號(“) 單引號(‘)
heredoc 語法(<<<)(補充)

57 String型態-雙引號 包含在雙引號裡頭的可以是一般文字字串。 如果含有變數的話,會以該變數的值代入。
與 C、Perl 一樣,PHP 也允許以「\」代表跳脫(escape)字元,在雙引號中加入具有特殊用途的符號,如:  \n:換行(newline)  \r:送出 CR(carriage)  \t:跳位(Tab)  \\:反斜線(backslash)  \$:錢字號(dollar sign)  \“:雙引號(double-quote)  \[0-7]{1,3}:八進位表示法的 regular expression  \x[0-9A-Fa-f]{1,2}:十六進位表示法的 regular expression 例:<?  $str_1 = ”I am here!“;  $str_2 = ”str_1 : $str_1“;  echo $str_2;  ?>  輸出的結果將是:str_1 : I am here!,原先被包含在雙引號中的變數($str_1)以其值代入了。

58 String型態-單引號 使用單引號要注意的是,在單引號中的變數不會以變數值代入。
另外,可以被 escape 的字元只有兩個:\‘ 與 \\。 例:<?  $str_1 = 'I am here!';  $str_2 = 'str_1 : $str_1';  echo $str_2;  ?> 輸出的結果將是:str_1 : $str_1,原先被包含在單引號中的變數($str_1)不會被其值所取代。

59 String型態 兩個字串可以以”.”符號進行連接。 範例7-4 附錄字串函數(課本好像沒有?)

60 String型態-heredoc synex
這種設定字串的方法只在 PHP4 提供,主要用於引用一整段文字,如: <?  $a = “abc”;  $str = <<< CHENSH  中文“測試”有雙引號<br>  中文‘測試’ $a 有單引號與變數  CHENSH;  echo $str;  ?>  輸出的 HTML 碼:  中文“測試”有雙引號  中文‘測試’ abc 有單引號與變數 上述的 CHENSH 是用來標示文字段落起迄位置的 identifier,可自行命名。另外,結束的 identifier 一定要放在該行的行首,否則將導致錯誤。

61 Array陣列型態 集合相同屬性的變數所成的集合。
可以是二維、三維或者多維陣列,其中的元素也很自由,可以是 string、integer 或者 double,甚至是 array。 語法:$陣列名稱[指標] 陣列由第 0 個元素開始配置。 例:  $a[0] = 1234;  $a[1] = 567;  $a = array(1234, 567); $car0 $car1 $car2 $car3 $car4 $car[0] $car[1] $car[2] $car[3] $car[4]

62 Object物件型態 類別(資料成員與成員函數)與物件(使用類別)。 物件的使用上比較麻煩,要先宣告類別,甚至必須先要有方法,方可使用物件。
例: <?  class foo {    function do_foo () {      echo "Doing foo.";    }  } $bar = new foo;  $bar -> do_foo ();  ?> 執行結果:  Doing foo.範例7-5 先宣告類別

63 資源型態 負責與外部資源(檔案、資料庫、 影像等)聯繫。 不可以直接操作,需要透過特殊函數才能操作。
例如MySQL,需要透過MySQL函數來操作。 無法進行型態轉換

64 Null型態 表示變數裏沒有任何值,而不是0。 例如: $n1=NULL; unset($n2); echo $n1; echo $n2;

65 型態轉換 您可以強迫將變數的型態轉換,例如:
<?   $a = 10;    // $a is an integer   $b = (double)$a;    // $b is an double  ?>  當字串被轉換成數值資料時,原則上是: 1. 如果字串含有 .、e 或 E,則當成是 double 型態,否則視為 integer。 2. 以字串的開頭字元能否辨識為準,無法辨識的均轉為數值 0。 例: <?  $foo = 1 + "10.5";                   // $foo is float (11.5)  $foo = 1 + "-1.3e3";                // $foo is float (-1299)  $foo = 1 + "bob-1.3e3";          // $foo is integer (1)  $foo = 1 + "bob3";                  // $foo is integer (1)  $foo = 1 + "10 Small Pigs";     // $foo is integer (11)  $foo = 1 + "10 Little Piggies"; // $foo is integer (11)  $foo = "10.0 pigs " + 1;           // $foo is integer (11)  $foo = "10.0 pigs " + 1.0;        // $foo is float (11)  ?>

66 變數與常數 內定變數 在 PHP 執行時,有部份預設的變數可用,您可以執行 phpinfo( ) 以查看這些變數。例如:
SERVER_NAME:chensh.loxa.edu.tw  HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR ) SCRIPT_FILENAME:/home/chensh/php/A_4.php

67 變數與常數 如果 php.ini 中 register_globals 被設定為 on 的話,上述的變數直接在前頭加上 $ 符號即可使用,例如:$SERVER_NAME。 倘若 register_globals 被設定為 off(預設值)的話,上述變數的讀取方法就不一樣了,它們被當作是 $_SERVER 陣列的一個元素,請用 $_SERVER['變數名稱'] 的方式來讀取它,例如:$_SERVER['SERVER_NAME']。

68 變數影響範圍 變數的影響範圍通常是 global,自啟用起,至該程式結束均有效
在自定的函數中,變數的影響範圍是 local,只侷限在函數內部。例: <?  $a = 1;  $b = 2;  function sum_test( ) {    return $a + $b;  }  echo sum_test( );  ?> 執行結果為 0,因為 $a 與 $b 的影響範圍無法達到 sum_test( ) 內部。

69 變數影響範圍 若希望在自定函數內引用外部的變數,則使用關鍵字 global 宣告,或是使用 global 變數陣列 $GLOBALS[ ]。
例:<?   $a = 1;   $b = 2;   function sum_test_1( ) {     global $a, $b;     return $a + $b;   }   function sum_test_2( ) {     return $GLOBALS[“a”] + $GLOBALS[“b”];   }   echo sum_test_1( );   echo sum_test_2( );  ?> sum_test_1( ) 與 sum_test_2( ) 的執行結果均為 3。

70 以變數為名的變數(Variable Variables)
在 PHP 中,變數的名稱也可以是變數,例如: <?  $a = "hello";  $$a = "world";  echo $a . " " . $$a;    // 輸出結果:hello world  echo $a . " " . ${$a};    // 輸出結果:hello world  echo $a . " " . $hello;    // 輸出結果:hello world  ?>

71 常數 在PHP中,常數的名稱一樣有大小寫之別,但是前頭不必加上「$」字元,因此,若將常數置於字串裡頭的話,將不會被系統所辨識出來。
可以使用 define( ) 函數來自定常數。  __FILE__:/home/chensh/php/A_4.php PHP_OS:FreeBSD PHP_VERSION:4.3.3


Download ppt "PHP程式設計 二、HTML & PHP基本語法 建國科技大學 資訊管理學系 饒瑞佶."

Similar presentations


Ads by Google