|
¼¶/JHKChan
ºô¶»s§@·§½×
- »{ÃÑHTML
- »{ÃÑCSS
- »{ÃÑJavaScript
- »{ÃÑPHP(¤@)
- »{ÃÑPHP(¤G)
- »{ÃÑPHP(¤T)
¥»½g¤å³¹ªº¥Ø¿ý
- PHP²¤¶
- PHP¹B§@I´º
- PHP°ò¥»»yªk
- ¸ÑºcPHP
- ÅܼƻP±`¼Æ
- ¹w³]ÅܼƻP±`¼Æ
- ªí¹F¦¡»P±Ôz¥y
- ´O¤J¦hÀÉ®×
- ³B²z°}¦C
- °Ñ¦Ò¸ê®Æ
4 »{ÃÑPHP(¤@)
4.1 PHP²¤¶
PHPªº¥þ¼g¬°PHP: Hypertext
Preprocessor¡A¬O¤@ºØ¦øªA¾¹ºÝµ{¦¡½Z¡A¥i´O¤J©óHTML¡C¥Ñ©ó¥¦®e©ö¾Ç²ß©M¨Ï¥Î¡A¤S¶°¦XJava¡BC¡BPerlµ¥µ¥¦hºØ½sµ{»y¨¥ªºÀuÂI©ó¤@
¨¡A²{®ÉPHP¤w¦¨¬°½s¼g¤j«¬ºô¯¸¤Îºô¤WÀ³¥Îµ{¦¡ªº¥Dn»y¨¥¤§¤@¡C¥[¤W¨ä°t¦XªºLinux¡BApache©MMySQL¡A²ÎºÙ¬°LAMP¡A¦A²K¤WGD¡B
PDFLib¡BPEARµ¥«n¼Ò²Õ¡A¥Oµo®i¥ç§óÁͧ¹µ½¡A¥Î§@³Ð«Ø°ÊºAºô¯¸©Mºô¶µ{¦¡«K³Ì¦n¤£¹L¡C
 ¹Ï4.1
¨ä¹ê¦©ó1995¦~¡APHP¤w¸g¥ÑRasmus Lerdorft³dµo®i¡A·í®É¥sPHP/FI¡A¥þ¼g¬°Personal Home
Page/Forms Interpreter¡A¤Î«á©ó1997¦~±À¥Xª©¥»2.0¡C©ó¦P¤@¦~¡A¥ÑZeev Suraski©MAndi
Gutmans±À¥XPHP 3.0¡A¤S©ó²Ý¦~±À¥Xª©¥»4.0¡A¥Dn¾aZend
Engine(¥ÑZeev©MAndi¨âÓ¦W¦r²Õ¦X¦Ó¦¨)¹B§@¡A¨Ã¦¨¬°²{®Éªº¥D¬y¡A³Ì·sªºª©¥»¬°4.3.11(2005¦~3¤ë31¤é±À¥X)¡C¦ÓPHP
5.0ªº±À¥X¡A§ó¹ïª«¥ó¾É¦V¦³§ó¦nªº¤ä´©¡C
 ¹Ï4.2
PHP»PCSS©MJavaScript¤£¦Pªº¬O¡APHPµL»ÝÂsÄý¾¹ªº¤ä´©¡A¦Ó¥u»Ý¦øªA¾¹¯à°÷±N¨ä½s͹B¦æ¡A¦]¦¹PHPªº·½½X¨Ã¤£·|®e©ö¦a³Q¥~¤H¡u°Ñ¦Ò¡v¡A¯à°÷¦³®Ä«O»Ùª¾ÃѲ£Åv¡C
4.2 PHP¹B§@I´º
¬JµM¹B¦æPHP«K»Ýn¦øªA¾¹ªº¤ä´©¡A§Ú̦³»Ýn¤F¸Ñ¤@¤U¦øªA¾¹ªº¹B§@±¡ªp¡A©ó¤£¦Pªº¼Ò¦¡¹B¦æ·|¦³¤£¦Pªº®ÄªG¡CPHP¤j·§ªº¹B§@¤è¦¡¦³¤TºØ¡G
- CGI¼Ò¦¡
³oºØ¼Ò¦¡»P¹B¦æshell script¤@¼Ë¡A¹B¦æ³t«×³ÌºC¡A¦Ó¥B¦b¥ô¦óPHPÀɪº²Ä¤@¦æ³£¥²¶·¥[¤W¥H¤U±Ôz¥y¡G
#!/usr/local/bin/php
©ÎÃþ¦ü¸ô®|¡C°²¦pºô¶¦øªA¾¹(¦pApache)¤ä´©suEXEC¡APHPÀɮ׫K¯à¾Ö¦³¨Ï¥ÎªÌÅv¡A°ÆÀɦW¥i¥H¬°.php©Î.cgi¡F
- Application¼Ò¦¡
³o¬O³Ì¬°±`¥Îªº¼Ò¦¡¡A¥ç¬O§ÚÌ·|¨Ï¥Îªº¼Ò¦¡¡A³t«×³Ì§Ö¡A¦ý°ß¤@ªº¯ÊÂI«K¬O¤£¯à°t¦XsuEXEC¡A¤]¦]¦¹PHPÀɤ£¯à¾Ö¦³¨Ï¥ÎªÌÅv¡A©ó³B²zÀÉ®×Ū¼g®É·|¤ñ¸û³Â·Ð¡C°ÆÀɦW¬°.php¡A¦ý¥ç¦³¦øªA¾¹³]¸m¬°.html¡F
- PHP-CGI¼Ò¦¡
³oºØ¼Ò¦¡»ÝnApache¦³¾A·íªº¦øªA¾¹°t¸m¡A¦b¥[¤WsuEXEC¡AÁöµM¥HCGI¼Ò¦¡¹B¦æ¡A«oµL»Ý©óPHPÀɪº²Ä¤@¦æ¥[¤W¥ô¦ó±Ôz¥y¡A¦]¦¹¹B¦æ®É»PApplication¼Ò¦¡µL²§¡A¦ýPHPÀÉ®×¥ç¥i¥H¾Ö¦³¨Ï¥ÎªÌÅv¡C°ÆÀɦW¥i¥H¬°.php©Î.pcgi¡C
¹ï©ó¾Ö¦³¨Ï¥ÎªÌÅvªº«n©Ê¡A§Ú̱N¦b¥H«á½Í¤Î¡A¤×¥HÀÉ®×Ū¼g®É·|¯S§O©úÅã¡C·íµM¡A§Y¨ÏPHPÀÉ¥¼¯à¾Ö¦³¨Ï¥ÎªÌÅv¡A§Ṳ́´µM¯à°÷±q¥t¤@³~®|¹ê½î¡A¦ý¦w¥þ©Ê«o¤j´T´î§C¡A¤]¦]¦¹PHP¤j¦h¼Æ°t¦XMySQL¨Ï¥Î¡C
 ¹Ï4.3 CGI¼Ò¦¡
4.3 PHP°ò¥»»yªk
º¥ý§Ú̦³¥H¤U¤@Ó²³æªº¨Ò¤l¡G
1 <?php
2 phpinfo();
3 ?> ¨Ò4.1
§Ú̱N¨äÀx¦s¦¨ex4_1.php(©Î¨ä¥L¦WºÙ¡A¦ý°ÆÀɦW¥²¶·¬°.php)¡AµM«á¹Á¸Õ¨Ï¥ÎÂsÄý¾¹¶}±Ò¡A¦ýµ²ªGÂsÄý¾¹·|·í¦¨¤U¸ü³oÓÀɮסC¦pªG§ÚÌÂù
À»¸ÓÀɮסA«o¤S¥Î¤F¤å¥»½s¿è¾¹¶}±Ò(©ÎªÌ¼u¥X¹ï¸Ü²°¸ß¶¡¨Ï¥Îþµ{¦¡¶}±Ò)¡C³o¬O¦]¬°¥Î¤áºÝ¤£¤ä´©PHPªºì¦]¡An¥¿½T°õ¦æPHPÀÉ¡AÀ³¸Ó¥ý¤W¸üÀɮצܤ䴩
PHPªº¦øªA¾¹¡AµM«á¦A¿é¤J¥¿½TªºURI¡C
·í¤j®a¬Ý¨£ºô¶®É¡A¦AÆ[¬Ý¨ä·½½X¡A¤j®a·|µo²{¨Ò4.1ªº·½½X¨Ã¤£¦s¦b¡A³o¬O¦]¬°¸Ó¬q·½½X¤w¸g°õ¦æ¨Ã¶Ç¦^²{¦bªºµ²ªG¡C
³¡¤ÀÅã¥Üµ²ªG¬°¡G
 ¹Ï4.4
4.3.1 ¸ÑºcPHP
¥Ñ©óPHP¬O¥i¥H´O¤J©óHTML¤º¡An¦øªA¾¹ª¾¹Dþ¬q·½½X»Ýn¤ÀªR¤Î½sĶ¡A§ÚÌ«K»Ýn¨Ï¥Î¯S©wªº¼Ð°O¥]¦í¸Ó¬q·½½X¡A¤£¹L¸Ó¼Ð°O«o¤£¬O¨Ï¥ÎHTMLªº
¼Ð°O¡A¦Ó¬OPHP¦Û¤v¿W¯Sªº¼Ð°O¡C¶}©l¼Ð°O¬°¡u<?php¡v©Î¡u<?¡v¡Aµ²§ô¼Ð°O¬°¡u?>¡v¡A¥¿¦p¨Ò4.1²Ä¤@©M²Ä¤T¦æ©Ò¥Ü¡A¦Ü©ó¦b¤¤
¶¡ªº·½½X«K·|³Q½sĶ¡A¦p²Ä¤G¦æªºphpinfo()(³o¨ç¼Æ¬O¥Î¨ÓÅã¥ÜPHPªº¸ê°T)¡C
§ÚÌ¥i¥H¦h¬Ý¤@Ó¨Ò¤l¡A«K©ú¥ÕPHP¦p¦ó´O¤JHTML¤º¡G
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <HTML>
3 <HEAD>
4 <TITLE>PHP Embedded in HTML</TITLE>
5 </HEAD>
6 <BODY>
7 <?php
8
9 # do not use this comment
10 echo "This text is generated by PHP<br>\r\n"; //These are script-style programming
11 print "another text genereated<br>\r\n";
12 printf("This is C-style programming<br>\r\n");
13 /* multi-line
14 comment */
15 ?>
16 </BODY>
17 </HTML> ¨Ò4.2
Åã¥Üµ²ªG¬°¡G
 ¹Ï4.5
¥¿¦p¤@¶}©l©Ò»¡¡APHP¶°¦X¤F¦hºØ½sµ{»y¨¥©ó¤@¨¡A´N¥Hµù¸Ñ©M¿é¥X¦r¥y¬°¨Ò«K¦³¦hºØ¤èªk¡C¥ý»¡µù¸Ñ¡APHPªºµù¸Ñ¤èªk¦³¥H¤U¤TºØ¡G
# shell scriptªºµù¸Ñ¤èªk
// C-style¤@¦æµù¸Ñ
/* C-style
¦h¦æµù¸Ñ */
§Ų́䣫ØÄ³¨Ï¥Î²Ä¤@ºØµù¸Ñ¤èªk¡A³o¥u¬O²ßºD°ÝÃD¡C
¦Ü©óecho¡Bprint©Mprintf³£¬O±Nµ²ªG¶Ç¦^ÂsÄý¾¹¡A¥H¤U¬°¥¦Ìªº©w¸q¡G
void echo ( string arg1 [, string argn...])
void print ( string arg)
void printf ( string format [, mixed args])
©w¸q©Ò¨Ï¥Îªº¼Æ¾Úµ²ºc©ó¤U¤@¸`·|´£¤Î¡C±qè¤~ªº¨Ò©Ò¥Ü¡A¬A¸¹¨Ã¤£¬O¥²¶·ªº¡C¦Ü©ó¦³¦hºØ¤èªk¿é¥X¡A³o¬O¦]¬°¥Ñ¦hºØ½sµ{»y¨¥¶°¦X¤@¨©ÒP¡A°²¦p¤j®a¥ý«e¤w¾Ç·|Perl©ÎC¡A¤j®a¤j¥i¥H¸Õ¥Î¤£¦Pªº¨ç¼Æ¡C
4.3.2 ÅܼƻP±`¼Æ
»PJavaScript¤@¼Ë¡APHP¥ç¦³ÅܼÆ(variable)»P±`¼Æ(constant)¡C¥ý»¡ÅܼơAÅܼƳ£¥²¶·¾Ö¦³°ß¤@ªº¦WºÙ¡A¨Ã¥B¦b«e±¥[¤W¡u$¡v¡A¨Ò¦p¡G
$abc $ABC $_aBc
³o¨Ç³£¬O²Å¦Xn¨Dªº¨Ò¤l¡Anª`·Nªº¬OPHP¬O¤À¤j¤p¼gªº(case-sensitive)¡C¥i¬Oª½±µ¨Ï¥ÎÅܼơA¨Æ«eµL»Ý¦pJavaScript¯ë«Å§i¡A½á¤©Èªº¤èªk¦p¤U¡G
$varName = value;
value¥i¥H¬O¤£¦Pªº¼Æ¾Úµ²ºc¡AºØÃþ¤ñJavaScript¦h¡A¤j·§¦p¤U¡G
- ¾ã¼Æ(Integer)
- ¯BÂI¼Æ(Float©ÎDouble)
- ¥¬ªL(Boolean)
- ¦r¥y(String)
¦¹µ²ºc¦³¤TºØªí¹F¤è¦¡¡C²Ä¤@ºØ¨Ï¥Î¡u'¡v¥]¦í¡A²Ä¤GºØ¨Ï¥Î¡u"¡v¥]¦í¡A»P²Ä¤@ºØ¤£¦Pªº¬O¥Î¡u"¡v¥]¦íªºÅܼƬO·|¸g¤ÀªRªº¡A¨Ò¦p¡G
$age = 20;
echo '$age'; //·|¿é¥X $age
echo "$age"; //·|¿é¥X 20
²Ä¤TºØ¤èªkºÙ¬°heredoc¡A¨Ï¥Î¡u<<<¡v¡A«á±¦A¥[¤W²×µ²ÃѧO²Å(closing identifier)¡A¦pEOF¡A¥H«áªº¤å¦r³£·|Àx¦s©óÅܼƤº¡Aª½¦Ü¦A¨£¨ì²×µ²ÃѧO²Å¬°¤î¡A¨Ò¤l¦p¤U¡G
$str = <<<EOF
The text here will all be stored
EOF
¨Ï¥Îheredoc»P¡u"¡v¤@¼Ë·|¤ÀªR¤å¦r¤ºªºÅܼơC¥t¥~¡An±N¦r¥y¦X¨Ö°_¨Ó¡A¥u»Ý¥[¤W¡u.¡v(»PJavaScriptªº¡u+¡v¤@¼Ë)¡F
- °}¦C(Array)
«Å§i°}¦Cªº¤èªk¦³¨âºØ¡A²Ä¤@ºØ¬°¡G
$arr = array(2,3,5);
»PJavaScript¤@¼Ë¡AÂ^¨ú¸ê®Æ¤èªkªº½s¸¹¥ç¬O¥Ñ0¶}©l¡C²Ä¤GºØ¤èªk¤ñ¸û¦n¥Î¡A¦Ó¦b½sµ{ªº¨¤«×¨Ó»¡¡A§ÚÌ¥iºÙ¤§¬°ÁäȰ}¦C(key-
value-pair
array)¡BÂø´ê(hash)©Î¦r¨å(dictionary)¡A¦Ó¨Æ¹ê¤W¦¹°}¦Cªº¹ê²{¤è¦¡¬°¨Ï¥ÎSTLªº¦³§Ç¹Ï(ordered
map)¡C¨ä¨Ï¥Î¤èªk¦p¤U¡G
$arr = array("name" => "someone", "age" => 20);
¨Ï¥ÎªÌ¥²¶·¶ñ¤WÁä(key)©MÈ¡C¤§«ánÂ^¨ú¸ê®Æ¡A¥un¦b¤è¬A¤º¥´¤WÁä¦W«K¥i¡G
echo $arr["name"] . " " . $arr["age"];
- ¸ê·½(Resource)
³o¥iºâ¬O¤@ºØ·sªº¸ê®Æµ²ºc¡A¬O¥Î©óPHP»P¨ä¥L¥~³¡¸ê·½³sµ²®É¨Ï¥Î¡A¦pÀɮצs¨ú¡BMySQL³sµ²¡Bsocket³sµ²µ¥µ¥¡A©ó±N¨Ó§ÚÌ·|¦A±´°Q¡F
- NULL
³oªí¥Ü¦¹ÅܼƨS¦³¤@ÓÈ¡A¬O»P0¤£¦Pªº¡C
°£¤F¥H¤W¤CºØ¸ê®Æµ²ºc¥~¡A©ó´yzPHP¨ç¼Æ®ÉÁÙ¦³¥H¤U¤TºØ°°¸ê®Æµ²ºc(pseudo-type)¡A¥Î§@µ²ºc½ÆÂøªº¨ç¼Æ©w¸q¡G
¨ä¹êPHP©óÅܼƤ¤ÁÙ¦³¤@±j¤j¥\¯à¡A´N¬O¥iÅÜÅܼÆ(variable variable)¡A¨ä¥Dnªº¥Î³~«K¬O°ÊºAªº³]¸m©M¨Ï¥Î¤£¦PªºÅܼơA¥H¤U¬°¨Ò¡G
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <HTML>
3 <HEAD>
4 <TITLE>Variable Variable Demonstration</TITLE>
5 </HEAD>
6 <BODY>
7 <?php
8
9 $arr = array("apple", "boy", "cat");
10 $apple = "Apple is red.";
11 $boy = "Boy likes to play game.";
12 $cat = "Cat is tame.";
13 $i = 0;
14 echo "{$$arr[$i]}<BR>\r\n";
15 $i = 2;
16 echo "{$$arr[$i]}<BR>\r\n";
17
18 ?>
19 </BODY>
20 </HTML> ¨Ò4.3
Åã¥Üµ²ªG¬°¡G
 ¹Ï4.6
¤j®a®Ú¾Úè¤~ªº¨Ò¤l¤j·§¥i¥H·N·|¨ì¡A·í$i¬°0®É¡A$arr[$i]·|Ū¨ì"apple"¡A©Ò¥H$$arr[$i]·|Åܬ°$apple¡A³o¤]´N¬O¥iÅÜÅܼơC
³Ì«á«K¬O±`¼Æ¤F¡A©óPHP¨Ï¥Î±`¼Æ¥²¶·¹w¥ý«Å§i¡A¨ä¤èªk¦p¤U¡G
define("constName", Data);
nª`·N±`¼Æ¤£¦PÅܼơA«e±¨S¦³¡u$¡v¡A©Ò¥H¥i¥Hª½±µ¨Ï¥Î±`¼Æ¡A¦p¤U¡G
echo constName;
¥t¥~¡A±`¼Æªº¸ê®Æµ²ºc¥u¥i¥H¬°integer¡Bfloat¡Bboolean©Îstring¡F
4.3.3 ¹w³]ÅܼƻP±`¼Æ
©Ò¿×¹w³]ÅܼÆ(Predefined variables)¡A´N¬OPHP¤º³¡´£¨Ñ¥i¥Îªº¨t²Î©MÀô¹ÒÅܼơA§Ú̯à°÷³B²zªí³æªº¸ê®Æ«K¬O¾a¥¦Ì¡C¹w³]ÅܼƫK¬O¤@ºØ°}¦C¡A¥H¤U¬°¥Dn¨Ï¥Îªº¹w³]ÅܼơG
- $_SERVER©Î$HTTP_SERVER_VARS¡GÀx¦s¦³Ãö¦øªA¾¹³]©wªº¸ê®Æ¡A¥H¤U¬°³¡¤À¤º§t¸ê®Æ¡G
- PHP_SELF¡G¹B¦æPHPÀɪº©Ò¦b¦ì¸m¡A¦phttp://itzone.hk/test/index.php¡A¨äÈ«K¬O/test/index.php¡F
- SERVER_NAME¡G´N¬O¦øªA¾¹ªº¦WºÙ¡F
- SERVER_SOFTWARE¡G¦øªA¾¹¨Ï¥Îªººô¶¦øªA¾¹¦WºÙ¡A¦pApache¡F
- QUERY_STRING¡Gªí³æ¨Ï¥ÎGET¤èªk¶Ç°e¸ê®Æ®Éªº¦r¥y¡F
- DOCUMENT_ROOT¡G©ó¦øªA¾¹¤ºPHPÀɥؿýªº¥»¦a¸ô®|(local path)¡F
- HTTP_USER_AGENT¡G»PJavaScript¬d¬ÝÂsÄýªÌªº¨t²Î¤@¼Ë¡F
- REMOTE_ADDR¡GÂsÄýªÌªºIP¦a§}¡F
- REMOTE_PORT¡GÂsÄýªÌ©Ò¨Ï¥ÎªººÝ¤f(port)¡F
- SCRIPT_FILENAME¡G©ó¦øªA¾¹¤ºPHPÀɪº¥»¦a¸ô®|¡A¥i·í§@¬°DOCUMENT_ROOT»PPHP_SELFªº¦X¨Ö¡F
- PHP_AUTH_USER¡G·í°õ¦æHTTP»{µý®ÉÀx¦s¨Ï¥ÎªÌ¦WºÙ¡F
- PHP_AUTH_PW¡G·í°õ¦æHTTP»{µý®ÉÀx¦s±K½X(¯Â¤å¦r)¡F
- AUTH_TYPE¡G·í°õ¦æHTTP»{µý®Éªº¼Ò¦¡¡A¦h¼Æ¬°basic¡F
- $_ENV©Î$HTTP_ENV_VARS¡GÀx¦s©ó¦øªA¾¹¤¤¨t²ÎÅܼơF
- $_COOKIE©Î$HTTP_COOKIE_VARS¡GÀx¦s©ócookie¤ºªºÅܼơA§Ų́䣷|½Í¤Î¡F
- $_GET©Î$HTTP_GET_VARS¡GÀx¦sªí³æ¨Ï¥ÎGET¤èªk¶Ç°e¸ê®Æ«áªºÅܼơA¦s¨ú¤èªk¬°$_GET['dataName']¡A±N¨Ó·|¸Ô²Ó½Í¤Î¡F
- $_POST©Î$HTTP_POST_VARS¡GÀx¦sªí³æ¨Ï¥ÎPOST¤èªk¶Ç°e¸ê®Æ«áªºÅܼơA¦s¨ú¤èªk¬°$_POST['dataName']¡A±N¨Ó·|¸Ô²Ó½Í¤Î¡F
- $_FILES©Î$HTTP_FILES_VARS¡GÀx¦s¨Ï¥Îªí³æ¤W¸üÀɮ׫᪺¸ê®Æ¡A±N¨Ó·|¸Ô¤Î¡F
- $_REQUEST¡G³o¬O¤@ºÆ¨gªºÅܼơA±N$_GET¡B$_POST¡B$_COOKIE©M$_FILES(©óª©¥»4.3.0©Î¥H«á)¦X¨Ö¦b¤@°_¡A¥Ø«e¨Ã¤£«ØÄ³¨Ï¥Î¡F
- $_SESSION©Î$HTTP_SESSION_VARS¡G³o¬OÀx¦s·|¸Ü(session)¤ºªºÅܼơA¨ä·§©À¤Î¨Ï¥Î¤èªk©ó±N¨Ó·|¸Ô²Ó½Í¤Î¡C
¨ä¹ê¡A©óphpinfo()³o¤@¨ç¼Æªº¿é¥Xµ²ªG¤¤§t¦³¤j¶q¸ê°T¡A³£¬OÀx¦s©ó³o¨Ç¹w³]ÅܼƤº¡C·íµM§ÚÌ¥ç¥H¦Û¦æÅã¥Ü¼Æ²Õ¤º©Ò¦³¤º®e¡A¨Ï¥Î¥H¤U¨ç¼Æ¡G
bool print_r ( mixed expression [, bool return])
void var_dump ( mixed expression [, mixed expression [, ...]])
¥t¥~¡A§ÚÌn²M·¡ª¾¹D¬°¬Æ»ò·|¦³$_xxx©M$HTTP_xxx_VARS¨âºØ¦s¨ú¤è¦¡¡C¥ý»¡$HTTP_xxx_VARS¡A³o¬OPHP³Ì¶Ç²Îªº¤è
¦¡¥h¦s¨ú¨t²Î©MÀô¹ÒªºÅܼơA¦ý$_xxx«o¬O©óPHP 4.1.0¤~¶}©l¤Þ¤J¨Ï¥Î¡A¦Ó¦¹¤@ºØ°}¦C¦³¦Û°Ê¥þ°ì(automatic
global)ªº¥\¯à¡A§Ú̺٤§¬°superglobals¡A²{®É§Ú̳£«ØÄ³¨Ï¥Î$_xxx¡C
³Ì«á¡A§ÚÌn»¡¤@»¡register_globals³oÓ¦øªA¾¹¿ï¶µ¡A©óphpinfo()ªº¿é¥Xµ²ªG¥i¥H§ä¨ì¡APHP
4.2.0¤§«e¹w³]Ȭ°on¡A¤§«á«h¬°off¡C°²¦p¨äȬ°on¡A³o¥Nªí§Ṳ́£¥²¨Ï¥Îè¤~ªº¼Æ²Õ«K¯àª½±µ¦s¨ú¨t²Î©MÀô¹ÒÅܼơA¨Ò¦p$_GET
['name']¡A§ÚÌ¥i¥Hª½±µ¥Î$nameŪ¨ú¡CÁöµM½sµ{®É·¥¬°¤è«K¡A«o±a¥X¤F«O¦wªº°ÝÃD¡A¦]¬°°²¦p¨t²Î¦P®É¦³$_GET['name']©M$
_SESSION['name']¨â¶µ¤£¦Pªº¸ê®Æ¡A¦ý¦pªG¨Ï¥Î$nameŪ¨ú«K·|¤Þ°_¨R¬ð¡APHP¬°¤FÁ×§K»~·|¡A¤S«Ø¥ß¤Fvariables_order
¨Ó¸Ñ¨M°ÝÃD¡A¤]´N¬O»¡¤£¦P°}¦C¦³¤£¦PªºÀu¥ýÅv¡C
 ¹Ï4.7 register_globals¤Îvariables_order
¦Ü©ó¹w³]±`¼Æ(Predefined constants)¡A³Ì¬°¦³¥Îªº¦³¥H¤U¨âÓ¡G
- PHP_VERSION:Àx¦sPHPªºª©¥»¡A©ó½s¼g¤j«¬µ{¦¡®É¥i¥Î§@¤ä´©¦UºØª©¥»¡F
- PHP_OS:¦øªA¾¹¹B¦æªº§@·~¨t²Î¡A©ó¤ä´©¤£¦P§@·~¨t²Î¬Æ¬°¦³¥Î¡A¦pWindowsªº¸ô®|¥Î¡u\¡v§@¤À¹j¡A¦ýPOSIX(¦pLinux)«h¥Î¡u/¡v¡F
¥H¤U¬°¤@ºî¦X¨Ò¤l¡G
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <HTML>
3 <HEAD>
4 <TITLE>Predefined Variables and Constants Demonstration</TITLE>
5 </HEAD>
6 <BODY>
7 <?php
8
9 $preVar = array($_SERVER, $_ENV, $_COOKIE, $_GET, $_POST, $_FILES, $_REQUEST, $_SESSION);
10
11 print "This is PHP " . PHP_VERSION . " on " . PHP_OS . " platform.<BR>\r\n";
12 print " <PRE>\r\n";
13 print_r($preVar);
14 print " </PRE>\r\n";
15
16 ?>
17 </BODY>
18 </HTML> ¨Ò4.4
³¡¤ÀÅã¥Üµ²ªG¬°¡G
 ¹Ï4.8
4.4 ªí¹F¦¡»P±Ôz¥y
©óPHP§Ú̥禳¤£¦Pªºªí¹F¦¡¡A¥H¤U¬°¤ñ¸û¤ÎÅÞ¿è¹Bºâ²Åªº·§n¡G
- expr1 == expr2
- expr1 != expr2
- expr1 > expr2 ©Î expr1 >= expr2
- expr1 < expr2 ©Î expr1 <= expr2
- !expr
- expr1 && expr2 ©M expr1 || expr2
- expr1 and expr2 ©M expr1 or expr2 ©M expr1 xor expr2
and»P&&©Mor»P||¨Ã¨S¦³ÅÞ¿è¤Wªº¤£¦P¡A¥u¤£¹L½sµ{¤Wand©MorªºÀu¥ý¦¸§Ç¸û°ª¡A¦Ü©óxor«h¬°²§©Î(eXclusive OR)ªº·N«ä¡F
- expr1?expr2:expr3
¥t¥~¡A¥H¤U¬°±`¥Î½Æ¦X±Ôz¥yªº·§n¡G
- if ... else
- switch
³o¬O»Pif ... else¬Û¦üªº±ø¥ó±Ôz¥y¡A¤£¹L§ó¬°¦³¼u©Ê¡A¦]¬°¨Ï¥Îswitch¥i¥H«Ø¥ß¤£¦Pªºcase¡A¤]´N¬O»¡¥i¥H²Ó±Ù¬Y¥ó¨Æ¦h¥ó¡A¥H³Ì¾A·íªºµ{§Ç¨Ó°t¦X¡C¥H¤U¬°¨ä»yªk¡G
switch (condition) {
case case1:
statements1;
break;
case case2:
statements2;
break;
...
default:
statements;
}
·í¤¤ªºbreak´N¬O²æÂ÷switchªº·N«ä¡A§_«h·í¬Y¤@±ø¥ó¯à²Å¦X¦h©ó¤@Ócase®É«K·|¥þ³¡¹B¦æ¡C¥t¥~¡Adefault´N¬O·í±ø¥ó¥¼¯à²Å¦X²³¦h
case®É¨Ï¥Î¡C³Ì«áȱo¤@´£ªº«K¬Ocondition¤F¡A¨ä¥L½sµ{»y¨¥³£¥u¯à¬Ointeger¡Bboolean©Îcharacter¡A¦ýPHP«o¤ä´©
string¡F
- for
- foreach
foreach»Pfor¬Û¦ü¡A¬O¨ú§÷¦ÛPerl¡A¦Ó¨ä¤¤ªº¤À§O¦b©ó¯à°÷±N¤@¼Æ²Õªº¸ê®Æ³v¤@¶Ç¤J°j°é¤º¡A¥\¯à»Pprint_r®t¤£¦h¡C¥H¤U¬°¨ä»yªk¡G
foreach (array_expression as $value) {
statements;
} ©Î
foreach (array_expression as $key => $value) {
statements;
}
- while
¥H¤U¬°switch©Mforeachªº¨Ò¤l¡G
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <HTML>
3 <HEAD>
4 <TITLE>Block Statements Demonstration</TITLE>
5 </HEAD>
6 <BODY>
7 <?php
8
9 switch($_GET['name']) {
10 case "itzone":
11 print "itZone";
12 break;
13 case "hksar":
14 print "Hong Kong Special Administrative Region";
15 break;
16 case "html":
17 print "HyperText Markup Language";
18 break;
19 case "firewire":
20 case "ilink":
21 print "IEEE 1394";
22 break;
23 default:
24 print "Try to set name something";
25 }
26 echo "<BR><BR>\r\n";
27
28 foreach ($_SERVER as $key => $value) {
29 print " key: $key , value: $value<BR>\r\n";
30 }
31
32 ?>
33 </BODY>
34 </HTML> ¨Ò4.5
³¡¤ÀÅã¥Üµ²ªG¬°¡G
 ¹Ï4.9
4.5 ´O¤J¦hÀÉ®×
PHPÀÉ¥i¥H´O¤J¨ä¥LÀɮסA¦p¦¹PHP«K¯à¥H¼Ò²Õªº§Î¦¡½s¼g¡A¨Ò¦p´O¤J²ÕºAÀÉ¡B¶º¡B¶§À¡Bp¼Æ¾¹µ¥µ¥¡A·íºô¶µ{¦¡½ÆÂøµ{«×¶V°ª¡A¨Ï¥Î´O¤JÀÉ®×§ó¥[¬O¥²¶·¡C§ÚÌ¥i¥H¨Ï¥Î¥H¤U¨âºØ¤è¦¡´O¤JÀɮסG
include("filename");
require("filename");
¥ý»¡include©Mrequireªº¤À§O¡ArequireªºÀɮצpªG¥¢±Ñªº¸Ü¡A±N·|¾ÉPPHP²£¥Í¿ù»~¡A¦ýinclude¥u·|¦³Äµ§i¦Ó¤w¡C¦ýnª`·Nªº¬O¡A°²¦pa.php´O¤Jb.php¡Ab.php¤S´O¤Ja.phpªº¸Ü¡A«K·|¾ÉPµLªkÅã¥Üºô¶¡C
¥t¥~¡A¦pªG¦øªA¾¹¿ï¶µ¤¤allow_url_fopen³Q³]©w¬°on(¬°¹w³]È)¡A¥un¿é¤J¾A·íªºURI¡A´O¤JÀÉ®×§ó¥i¥H¬O¨ä¥L¦øªA¾¹ªºÀɮסC
 ¹Ï4.10 PHPÀÉ®×Ãö«Y¹Ï ©PHPkitchen
¹Ï4.10«K¬O¤@±M·~PHPºô¶µ{¦¡µ{p®ÉªºÀÉ®×Ãö«Y¹Ï¡A¥¦¥ç²M·¡Åã¥Ü¤£¦P¼h¦¸ªºÀÉ®×´O¤J¡A³o¥u¬O¤@²Ê²¤ªº·§¬A¡AÅý¤j®a¦³²`¨è¦L¶H¡A¦b¦¹¤£ÂØ¡C
¥H¤U¬°¸Ô²Óªº´O¤J¨Ò¤l¡G
1 <?php
2
3 include "ex4_6a.php"; //header
4
5 print " Here is the main content<BR>";
6
7 for ($i = 0; $i<10; $i++)
8 print " Line $i<BR>\r\n";
9
10 include "ex4_6b.php"; //footer
11
12 ?> ¨Ò4.6
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <HTML>
3 <HEAD>
4 <TITLE>Example on Include</TITLE>
5 <STYLE type="text/css">
6 <!--
7 BODY {
8 padding: 5px;
9 margin: 0px;
10 }
11
12 TD {
13 font-family: Arial;
14 font-size: 12pt;
15 border-style: solid;
16 border-width: 1px;
17 border-color: #000000;
18 }
19 -->
20 </STYLE>
21 </HEAD>
22 <BODY>
23 <TABLE cellspacing="1" cellpadding="2" width="100%" border="0">
24 <TR><TD>
25 This is the header.
26 </TD></TR>
27 <TR><TD>
28 This is the menu.
29 </TD></TR>
30 <TR><TD>
31 ¨Ò4.6a
1 </TD></TR>
2 <TR><TD>
3 ©2005 This is the footer.
4 </TD></TR>
5 </TABLE>
6 </BODY>
7 </HTML> ¨Ò4.6b
Åã¥Üµ²ªG¬°¡G
 ¹Ï4.11
4.6 ³B²z°}¦C
¥ý«e§Ṳ́w¸g½Í¤Î°}¦Cªº°ò¥»·§©À©M¹w³]Åܼƹï¨äªºÀ³¥Î¡A²{¦b§Ú̬O®ÉÔ¦Û¤v°Ê¤â³B²z°}¦C¤F¡C³Ì¥±`³B²z°}¦Cªº¤âªk¡A«K¬O°}¦C»P¦r¥yªºÂà´«¡A¥H¤U¬°±`¥Î¨ç¼Æ¡G
- implode©Îjoin¡G³o¨âÓ¨ç¼Æ¬O¬Û¦Pªº¡A³£¬O±N°}¦CÂà´«¦¨¦r¥y¡A¥H¤U¬°¨ä©w¸q¡G
string implode ( string glue, array pieces)
glue´N¬O©ó¦r¥y¤À¹j¸ê®Æªº¦r¥y¡A¦h¼Æ¬°","¡Apieces´N¬On³QÂà´«ªº°}¦C¡F
- explode¡G¤]´N¬Oimplodeªº¬Û¤Ï¡A±N¦r¥yÂà´«¦¨°}¦C¡A¥H¤U¬°¨ä©w¸q¡G
array explode ( string separator, string string [, int limit])
separator´N¬O¤À¹j¸ê®Æªº¦r¥y¡A¨ç¼Æ´N¬O®Ú¾Úseparator¨Ó««Ø°}¦C¡Astring¬On³QÂà´«ªº¦r¥y¡Alimit¬O¥Î¨Ó¨î°}¦C³Ì¦hªº®æ¼Æ¡F
- split¡G»Pexplode¬Û¦ü¡A¦ý¦¹¨ç¼Æ¤ä´©RegExp¡A¦]¦¹¥Î³~¸û¼sªx¡ARegExp·|©ó±N¨Ó¦A¦¸¸Ô²Ó½Í¤Î¡C¥H¤U¬°¨ä©w¸q¡G
array split ( string pattern, string string [, int limit])
- list¡G¤@ӥΨӻs§@°²°}¦Cªº¨ç¼Æ¡A¦¹¨ç¼Æ¦h¼Æ»Pexplode©Îsplit¤@°_¨Ï¥Î¡A±N¦r¥yÂà´«¥X¨Óªº¸ê®Æ¤À§O¦s¤J¤£¦PªºÅܼƤº¡A¥H¤U¬°¨ä©w¸q¡G
void list ( mixed ...)
¥H¤U¬°¤@¨Ò¤l¡G
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <HTML>
3 <HEAD>
4 <TITLE>Dealing with Array</TITLE>
5 </HEAD>
6 <BODY>
7 <?php
8
9 $s1 = Date("d/m/Y"); //a string storing date
10 list($day, $month, $year) = explode("/", $s1);
11 echo "{$year}¦~{$month}¤ë{$day}¤é<BR><BR>\r\n";
12 $server = implode(",", $_SERVER);
13 echo "Server Data:<BR>\r\n$server";
14
15 ?>
16 </BODY>
17 </HTML> ¨Ò4.7
³¡¤ÀÅã¥Üµ²ªG¬°¡G
 ¹Ï4.12
4.7 °Ñ¦Ò¸ê®Æ
- Deepak Thomas, et al. "Professional PHP4 Programming", Wrox Press Inc., 2002.
- Tim Converse and Joyce Park. "PHP Bible", Second Edition, Wiley & Sons, 2002.
- The PHP Group. (2005). "PHP: Hypertext Preprocessor". [Online]. Available: http://www.php.net/
- The PHP Documentation Group. (2005, May.). "PHP Manual", Online Version, English. [Online]. Available: http://www.php.net/manual/en/
- The PHP Documentation Group. (2004, Apr.). "PHP Manual", Offline Version, English. [Online]. Available: http://hk.php.net/get/php_manual_en.chm/from/this/mirror
- PHPkitchen. (2005). "PHPkitchen - Come See What's Cookin'". [Online]. Available: http://www.phpkitchen.com/
- Jupitermedia Corp.. (2005). "PHPBuilder.com - The Resource For PHP Developers". [Online]. Available: http://www.phpbuilder.com/
¬ÛÃö³sµ²¡G
- Professional PHP4 Programming, Wrox Press Inc.
- PHP Bible, Second Edition, Wiley & Sons
- PHP: Hypertext Preprocessor
- PHP Manual, Online Version, English
- PHP Manual, Offline Version, English
- PHPkitchen - Come See What's Cookin'
- PHPBuilder.com - The Resource For PHP Developers
¬ÛÃö¤å¥ó¡G
- ¹Ï4.1
- ¹Ï4.2
- ¹Ï4.3 CGI¼Ò¦¡
- ¹Ï4.4
- ¹Ï4.5
- ¹Ï4.6
- ¹Ï4.7 register_globals¤Îvariables_order
- ¹Ï4.8
- ¹Ï4.9
- ¹Ï4.10 PHPÀÉ®×Ãö«Y¹Ï (C)PHPkitchen
- ¹Ï4.11
- ¹Ï4.12
- ¥»³¹¤@¤Áªºì©l½X¤Î½m²ß
- ¥»³¹ªºPDFª©
µoªí¤é´Á¡G2005-05-28
|