查看完整版本: PHP基礎入門

fend631 2008-2-26 23:31

PHP基礎入門

PHP程式語言基本注意事項:2f&\5NuM/u
--------------------------------------------------------------------------------
%h$q6P5c)I F s:b#I,jI)i2e$i
一、Web Server 如何分辨PHP的檔案與HTML檔案:m{:JbXzC
要讓Web Server 能執行文件中的PHP程式碼,文件的副檔名,必須是 .php或 .phtml。如果要使用其他檔名,請參考各Web Server的設定。
;qo ISq(a 2B"h1u's*Plv"cW

#m+s;S W7[?kE f1O 二、程式碼區域的開始與結束: c:F]~x;o
PHP的優點之一,就是可以和HTML碼混合在一起。但是為了讓Web Server能區分出 PHP的程式碼與HTML碼,所以,在每段PHP程式碼的開頭必須加入<?php,在結尾的地方加?>){p2C e\C#E
5}E0W:{+b5Lcc!F9f
命令句:
Wn'?;zu
)Wq? g+UV 在PHP中,每一個命令句必須以分號;作結束。
X{c)Tq-Y_ d F#^(m1hmB5c

)t p!v|/u)@0}`_ z2] 四、變數:
Z.|)W*OV 變數是用來儲存程式執行時的暫存資料。在PHP中,變數之前必需加 $ 的符號。另外,PHP的大小寫是有差別的,所以在使用變數時,須注意大小寫是否一致。PHP是屬於 weakly typed的程式語言,對資料型態的規範較鬆,可以不先經宣告變數,就可以直接使用。好處是,程式寫起來比較方便,壞處是,程式出問題時,比較難找出錯誤。Pj%a?K#v4Ot
"B*wps%Z$S-C^

%TexU-_U9r 五、程式註解:
0DSB&J"Q
&z tf8}-} PHP的程式註解符號,與C++,Java一樣,單行的註解使用 //。// 之後同一行所有的文字,在執行時都會被乎略。若要使用多行的註解時,可以使用 /* 和 */的註解符號。自/*開始到*/之間的所有文字,在執行時都會被乎略。
ZI'r ^@6m
+X"zh7N6^ E i+cC&U:a 0X9eF'{3v'He}y
?o5~7K(ea1O2er

)?Dv$bd/NLW"_4V --------------------------------------------------------------------------------4ttN@F"K3Sly
PHP 的輸出:
&[kcf?W+S5b0W0|1C --------------------------------------------------------------------------------
-rJH0tE1nQs'C QG8V~\1`
一、echo 與 print的使用: J~5KXF8pat
要列印輸出程式的運算結果時,可以使用echo(PHP的語言結構)或 print(函數)。以下以實例分別示範echo和 print的用法。理論上,使用echo會比print略有效率。
1n3UXF ``5V4CA 4G%zUu`[6P)n;w
二、echo.php:x_ \_9TBxt
4{vW0X])P
使用 echo 輸出: <br>
f-R0s'@K+^ k/?} 這裡的文字, Web Server不會作任何處理, 直接輸出<hr>0UA0c ][x7m
<?#Q$Gz%U2MV8Oy4hRrY
echo("有括弧的<br>");eo+c'EkUO

1fmUKst1g echo "沒括弧的<hr>";M-jz.S \3U;b;p
X(RBH L0ndf
$today = date("Y年m月d日"); //把呼叫 date函數所得的值, 設定給 $today變數
Y*U\*WT T \ o5o"[~/_"?3OD
echo <<<END
&L R(Lq*M-U5s0k 這鍋使用 "here document" 語法來輸出"一狗票"文字, <br>M!a)g _N5oA
所有用 here document的方式輸出的文字, <br>
k~]'j_ m5{_ UK 都可以完整的保留下來, <br>/_5q.KV|9t6ZQq9B
變數在這裡"也"可以被替換, <br>
N+`S{x 今天: $today<br>9^3S?)K6f2p5c
END;
f1`-R lD(a ?>
M(s7F'U-R Ao CS <hr>上面的文字, 是執行過PHP程式所得的輸出結果<br>e;I _;f.D(Xq
這裡的文字, Web Server不會作任何處理, 直接輸出<hr>
-F0U8~L![:lDK6Y{ 以下輸出的結果是 <?php echo $today ?> 的簡寫方式<br>
&I8pOw ^a^4M <?=$today?>dT']yJ6Rr$q
<hr>
*d/w9~3x]6L,b4?
3ha1`4B!q#T)V
$araRG*qM }k ~ 三、print.php:
KPo%_.Gx8`1u 使用 print 輸出: <br>/T W)t*T8@d)|oF
這裡的文字, Web Server不會作任何處理, 直接輸出<hr>
\(k(E5to+Xv'T <?8H s$y3C?] i
print("有括弧的<br>");8}oe*M4Xh&z!Yf

:]YZD+U print "沒括弧的<hr>";r A g3i9I3AGj9t

_Np JB"Etom $today = date("Y年m月d日"); //把呼叫 date函數所得的值, 設定給 $today變數
UBycsj4\
tm%\1P:^1k print <<<END
p)l1F}i6u*X Ka 這鍋使用 "here document" 語法來輸出"一狗票"文字, <br>
z,^ L'L G?T 所有用 here document的方式輸出的文字, <br>
L(OGs-y j*p 都可以完整的保留下來, <br>/R AT^n*r$s!h:[j/[]
變數在這裡"也"可以被替換, <br>
"S}1iuOF)D 今天: $today<br>
f~'p zPQ END;
8U!K+B Jp%j%O.t ?>
1RA h&t\L <hr>上面的文字, 是執行過PHP程式所得的輸出結果<br>
kY](Zb3I:e 這裡的文字, Web Server不會作任何處理, 直接輸出<hr>
#f1o"Dfxm3[c 以下輸出的結果是 <?php print $today ?> 的簡寫方式<br>
`K5G k9a7C*j <?=$today?>
n9B}I-] <hr>
(K4Q6^b}lN
4Yf6iN-|8M5X
#u f#bcz
o w;lDN1s1z$x,_aF
"nM0v vExlP&J7p%H 0Pzx |$Q
--------------------------------------------------------------------------------
`x.j&wTlOC Web的表單處理:
5Ai7Yj/e D --------------------------------------------------------------------------------
.uyk }?M yh @ [2\g(n
以上我們學到的是,使用PHP來輸出程式運算的結果。接下來我們要學習如何,處理表單所傳遞過來的資料。
-el6XI:uXc\l(H 一、102_form1.php:CBE`'[ K'M(~'L
<html>'K_ ]Qm5i
<FORM METHOD=POST ACTION="">
#PiI)Y D6j;@ 帳號: <INPUT TYPE="text" NAME="account"><BR>7y@],tl
密碼: <INPUT TYPE="text" NAME="password"><BR>q+_/Z.mC$f2Bo7Z
<INPUT TYPE="submit" value="送出"></FORM>
0W#Mn8X*z`S <HR>l%k(tc:FJ @` i6?
你輸入的帳號: <?=$_POST[account]?> <BR>
g|fG+] ^~} 你輸入的姓名: <?=$_POST[password]?>G&sh.QxBp
wW,m/o\u
<HR>
1q+lE%SM}*B/]W
@^p \FJi+M </html>+S qE5w Vz.e3t J

(O6w`&G\&OW T9NWi7h ^
US+na.M HhM?-G
程式說明:
_4r4W#[aj6l 在102_form1.php中,我們使用簡寫的方式,把PHP碼內嵌到HTML碼中。 `3v#['I `7o%^-o
表單所傳遞過來的資料,會按照HTML表單物件的名稱,成為PHP可以讀取的變數。如 :<INPUT TYPE="text" NAME="account"> 這個文字欄位,NAME屬性的值是account。所以,要讀取這個欄位的值,只要使用$account這個變數即可。
0j#}XqD RsOS8L6E,Tr
練習題:$e#C6S4k_ g#]%A(p1d
把 102_form1.php存成 102_form2.php,中的 Form Method=Post 改為 Form Method=Get,並觀察網址列的變化。/sdlK[H,o
在瀏覽器中輸入[url=http://www.igt.com.tw/~lib13/102_form1.php?account=abc&amp]http://www.igt.com.tw/~lib13/102_form1.php?account=abc&amp[/url];password=567,並觀察網頁輸出的結果。
}\:I @|OQZi 在瀏覽器中輸入[url=http://www.igt.com.tw/~lib13/102_form2.php?account=efg&amp]http://www.igt.com.tw/~lib13/102_form2.php?account=efg&amp[/url];password=987,並觀察網頁輸出的結果。~.}\U*`B8[{

/YU&Yy e'P;W 二、使用 if-elseif-else的結構:
jG OS`U*^"rq 1. 102_login.html
|'Aak(C^ La$M{;a3Y <html>/H:rp^&G
<FORM METHOD=POST ACTION="102_auth.php">
Y I.l;c/tLV 帳號: <INPUT TYPE="text" NAME="account"><BR>&_ d5?3`:m;f3i8e
密碼: <INPUT TYPE="text" NAME="password"><BR>.S}"x7o'_{
<INPUT TYPE="submit" value="送出">
CX|'Cw.u </FORM>
Xog G#yeL3N </html>
`Xc%cU9N
@#`Yb)L;iW1Jv4c
c6}*t(K P1M+? t7o 2. 102_auth.php:BM Q%U)j cry] Y
<?php'u _J u;k;x8Y
if($account == "lord" && $password == "pass"){
3C6v yxT+~tw echo "歡迎 $_POST[account], 你的密碼是 $_POST[password]";
G3b"V%f8Z]!O4T }elseif($_POST[account] == "god" && $_POST[password] == "dog"){
P Mnl1eIFI_*p $y = date("Y") - 1911;
6ATx8?)m7p t9Z&xi $m = date("m");
DB0_ W4N $d = date("d");
ZY-k%N(t7ZF echo "歡迎 $_POST[account], 今天是民國".$y."年".$m."月".$d."日";
#FQ E!MN!i`c }else{ HgI XVC pv!\
echo "登入失敗:<hr> 輸入的資料:<br>帳號: $_POST[account] <br>密碼: $_POST[password]";`4oP?4K3L7}
}zO%b*a!eJol
?>a+PO*U%w%dK0o

B3hC&[M l2Z%|I $U3K"ZFFi
三、簡單的數學運算::Xw1U`@ {q
1. 102_rect.html
$Y;y3t0uS1z5m <html>!xXV8pf/\1k!D
<FORM METHOD=POST ACTION="102_rect.php">
.br(\.yPYO 高: <INPUT TYPE="text" NAME="h"><BR>]4[/s&e6S6r}z6Ki
寬: <INPUT TYPE="text" NAME="w"><BR>
;SH8Z*aB2Sh"s/Db <INPUT TYPE="submit" value="送出">
.?$T N {,A </FORM>
t3V,z [-Rz1z!L </html>
0c5ERtE 0Vb)ho:_V"C

$Z9k`bcd 2. 102_rect.php d#_+g3A#T*A!|
<?php
*U&bLCQ9v c+T:L $area = $_POST[w] * $_POST[h];$para = 2 * ($_POST[w] + $_POST[h]);t4ctF@
echo <<<ENDq RR6Q F c
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
.^MPGo!AK S <html>
7xqz6N?2[JMc <head>L~6tNsn!s'G
<title>Untitled Document</title>&@O+`p%s4SP/qG
<meta http-equiv="Content-Type" c>*?^(MKt CU
</head>
"{1h\&Y"Gt T
t2qh2A(G7K)OU <body>!W@?&F;^!`
<table width="61" border="0">[`G3N3EK,wB'W
<tr>n]-B _5Yn!l
<td width="36">高</td>:c(O4~7A|pjj
<td width="15">$_POST[h]</td>JO.D0T%D
</tr>@ MqzaR
<tr>
Ws5^d gl <td>寬</td>
d6L5n gG%gZ*] <td>$_POST[w]</td>/t:|}b^&I5^#^2}
</tr>
(Ay#ydF:a0GE x <tr>S,wG'@5DC nX
<td>面積</td>6j4X5Q-w^&y"K U^
<td>$area</td>
'G%d*^t:g$s E </tr>
4G1C!kq)U <tr>
/[+[u G2J'x%IF <td>周長</td>P4`5^zt0X
<td>$para</td>q!X `(vpK8?$G
</tr>9Q,I S"y3]9ij0C d;Py
</table>;f}/VV*l0`2S
</body>v/F8CmM2`
</html>
u]P,h#u M9o END;
,a3o#BD5VT-Z ?> O JT"W)G%~6@n^ O~
Q$~$R ^(}[8g

x7C'nPpF2eF 四、簡單的比較運算:AfyJ a4Q'^U
1. 102_comp.html)~3Q1x\V D
-r5DE-W"M;X-C!n*^
<html>
3]HFE+{D <FORM METHOD=POST ACTION="102_comp.php">&k]t+I4v\\E)qZ
n1: <INPUT TYPE="text" NAME="n1"><BR>
%q0Yp3[ ?k$Xe n2: <INPUT TYPE="text" NAME="n2"><BR>
el6p/?bf*f;a.nPw <INPUT TYPE="submit" value="送出">:\UXu7J(Il9fD%_
</FORM>UN#H3V3j*g]d
</html>cH G'GF
,r6~.V2Qoh l'p v
lQ+J3AW@V(zPq]d
2. 102_comp.php
`/F.q8['@"s <?php'Ga5\I6cC"@
if($_POST[n1] > $_POST[n2]){ $result = "$_POST[n1] 大於 $_POST[n2]";
.}(J T#|m8yh A }elseif($_POST[n1] < $_POST[n2]){d0Mu*H8o2@b
$result = "$_POST[n1] 小於 $_POST[n2]";
9wb3f+Ds }b)q7h }else{
'oB^ b;tV5H $result = "$_POST[n1] 等於 $_POST[n2]";H$x+v e"~.zY
}a9h"X.?+t3M
echo <<<END
i(wH7IqS_[BO"N6y)G <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">,M.x&D*iQ/y
<html>
$GIir%p$EK9y <head>1nrp ^L#[
<title>Untitled Document</title>
$J:LI!d`Pq0Y <meta http-equiv="Content-Type" c>
Y.xP ?h;N </head>
$K[s8X!g.w
fpT'B4p4]{'KGc <body>
8X j Ul-F&}Z <table border="0">D0z,M/n9NL
<tr>
;nf DB E Y(cH <td width="36">n1</td> n8|:g4Ia+T4K)z*O#t:J
<td width="15">$_POST[n1]</td>
!h;^2W Ix] </tr>
A:g.R,V%^1o <tr>7G4L,Z x E)OT ~
<td>n2</td>/y8AnfsWB
<td>$_POST[n2]</td>
4rg"A!TxQ.I"WKb1j'C </tr>
eD:MY!X*i%^3D <tr>
E,S_MA} <td>結果</td>
`;vE]-YxDE <td>$result</td>
!N:A-M3j:Y4E:W </tr>)KsP-Zz)F#_
</table>Z tE LX6n({*bE#C
</body>
6x0|'ADT'jY/r\.p </html>bA `:}Lzt
END;[+]0{/E:d;B
?>
頁: [1]
查看完整版本: PHP基礎入門