| PHP是一种用于创建动态WEB页面的服务端脚本语言。如同ASP和ColdFusion,用户可以混合使用PHP和HTML编写WEB页面,当访问者浏览到该页面时,服务端会首先对页面中的PHP命令进行处理,然后把处理后的结果连同HTML内容一起传送到访问端的浏览器。但是与ASP或ColdFusion不同,PHP是一种源代码开放程序,拥有很好的跨平台兼容性。用户可以在Windows NT系统以及许多版本的Unix系统上运行PHP,而且可以将PHP作为Apache服务器的内置模块或CGI程序运行。
除了能够精确的控制WEB页面的显示内容之外,用户还可以通过使用PHP发送HTTP报头。用户可以通过PHP设置cookies,管理用户身份识别,并对用户浏览页面进行重定向。PHP具有非常强大的数据库支持功能,能够访问几乎目前所有较为流行的数据库系统。此外,PHP可以与多个外接库集成,为用户提供更多的实用功能,如生成PDF文件等。
用户可以直接在WEB页面中输入PHP命令代码,因而不需要任何特殊的开发环境。在WEB页面中,所有PHP代码都被放置在“```
”和“
1等的形式。PHP引擎会自动识别并处理页面中所有位于PHP定界符之间的代码。
2PHP脚本语言的语法结构与C语言和Perl语言的语法风格非常相似。用户在使用变量前不需要对变量进行声明。使用PHP创建数组的过程也非常简单。PHP还具有基本的面向对象组件功能,可以极大的方便用户有效组织和封装自己编写的代码。
3
4
5
6PHP语法概述
7
8A. 基本语法
9
10即使初次接触PHP的用户也会发现自己对PHP的语法风格并不陌生。
11例如:<?php
12
13echo “Hello!”;
14
15?>
16
17显示结果为“Hello!”。
18
19PHP中,所有的变量都以标识“ $”开头。我们可以对上述代码做如下改动:
20<?php
21
22$greeting = “Hello!”;
23
24echo $greeting;
25
26?>
27
28改变后的代码显示结果不变。
29PHP中使用“.”符号连接不同的字符串,而其它的算术运算符则继承了流行编程语言的风格。举例如下:
30<?php
31
32$greeting = “Hello!”;
33
34$num = 3 + 2;
35
36$num++;
37
38echo “ $greeting $num people!”;
39
40?>
41
42显示结果为“Hello!6 people!”。
43
44PHP对各种运算符及运算规则都有一套完整的规定,如果用户具有C或C++语言的编程背景的话,可以发现一切都得心应手。
45与Perl语言一样,在PHP中,如果在双引号包含的字符串中含有变量的话,该变量将用相应的变量值替换;如果字符串被单引号包含,则不做替换。例如:
46<?php
47
48$name = ‘PETER’;
49$greeting_1 = “Hello, $name!”;
50$greeting_2 = ‘Hello, $name!’;
51echo “ $greeting_1n”;
52echo “ $greeting_2n”;
53?>
54显示结果为:
55Hello, PETER!
56Hello, $name!
57(注:上述代码中的“n”为换行符,只能在双引号字符串下使用)
58
59
60B. 变量
61
62PHP允许用户象使用常规变量一样使用环境变量。例如,在页面http://www.nba.com/scores/index.html中包含如下代码:
63
64<?php
65
66echo “[ $REQUEST_URI]”;
67
68?>
69
70则输出结果为[/scores/index.html]
71
72C. 数组
73
74用户在使用PHP创建数组时,可以把数组索引(包括常规索引或关联索引)加入方括号中。例如:
75
76$fruit[0] = ‘banana’;
77
78$fruit[1] = ‘apple’;
79
80$favorites['animal'] = ‘tiger’;
81
82$favorites['sports'] = ‘basketball’;
83
84如果用户在向数组赋值时不指明数组下标,PHP将自动把该对象加入到数组末尾。例如对于上述 $fruit数组可以用以下方式赋值而保持结果不变,
85
86$fruit[] = ‘banana’;
87
88$fruit[] = ‘apple’;
89
90同样,在PHP中,用户还可以根据需要建立多维数组。例如:
91
92$people[‘David’][‘shirt’] = ‘blue’;
93
94$people[‘David’][‘car’] = ‘red’;
95
96$people[‘Adam’][‘shirt’] = ‘white’;
97
98$people[‘Adam’][‘car’] = ‘silver’;
99
100在PHP中,用户还可以使用array()函数快速建立数组。例如:
101
102$fruit = array(‘banana’,‘apple’);
103
104$favorites = array(‘animal’ => ‘tiger’, ‘sports’ => ‘basketball’);
105
106或者使用array()函数创建多维数组:
107
108$people = array (‘David’ => array(‘shirt’ => ‘blue’,’car’ => ‘red’),
109
110‘Adam’ => array(‘shirt’ => ‘white’,‘car’ => ‘silver’));
111
112此外,PHP还提供了内置函数count()用于计算数组中的元素数量。例如:
113
114$fruit = array(‘banana’, ‘apple’);
115
116print count( $fruit);
117
118显示结果为2。
119
120D. 结构控制
121
122在PHP中,用户可以使用“for”或“while”等的循环结构语句。例如:
123
124for ( $i = 4; $i < 8; $i++) {
125
126print “I have eaten $i apples today.n”; }
127
128或
129
130$i = 4; while ( $i < 8) {
131
132print “I have eaten $i apples today.n”;
133
134$i++;
135
136}
137
138返回结果为:
139
140I have eaten 4 apples today.
141
142I have eaten 5 apples today.
143
144I have eaten 6 apples today.
145
146I have eaten 7 apples today.
147
148此外,用户还可以使用“if”和“elseif”等的选择性结构语句。例如:
149
150if ( $user_count > 200) {
151
152print “The site is busy right now!”;}
153
154elseif ( $user_count > 100) {
155
156print “The site is active right now!”;
157
158else {
159
160print “The site is idle - only $user_count user logged on.”;
161
162}
163
164
165表单处理
166
167PHP为用户提供了众多方便易用的强大功能。在表单的处理方面,PHP能够自动地将由客户端表单发送的数据赋值给相应变量,从而极大地简化了整个表单的处理过程。
168
169举例来说,用户建立如下表单:
用户可以直接对PHP创建的变量进行各种操作,例如显示变量值:
echo “Hi $name!”;
或对变量值进行验证:
if ( $name == “PETER”) { echo “Please check out your email.”; }
下面,我们就来看一下如何通过使用PHP创建并处理一个基本的表单。在示例当中,我们将会要求表单的填写者回答几个简短的问题,包括输入表单填写者的姓名,电子邮件地址,完成调查问卷等。
这里,我们将所要设计的页面按照功能划分成表单显示和表单处理两个功能模块。这样,用户就不必设计两个不同的页面,而只需要在同一个PHP页面中通过逻辑控制显示或处理相应的功能模块。
A. 表单显示
我们通过第一个功能模块来实现表单的显示。具体代码为:
<?php
function display_form()
{
global $PHP_SELF;
?>
1<form $php_self;="" echo="" target="“<?php" ?="">”METHOD=GET>
2
3Name: <input name="“name”" type="TEXT"/><br/>
4
5Favorite Fruit: <input name="“fruit”" type="RADIO" value="“apple”"/>Apple
6
7<input name="“fruit”" type="RADIO" value="“orange”"/>Orange
8
9<input name="“fruit”" type="RADIO" value="“banana”"/>Banana
10
11Favorite Times to Eat Fruit:
12
13<input name="“times[]”" type="CHECKBOX" value="“m”"/>Morning
14
15<input name="“times[]”" type="CHECKBOX" value="“n”"/>Noon
16
17<input name="“times[]”" type="CHECKBOX" value="“d”"/>Dinner
18
19<input name="“times[]”" type="CHECKBOX" value="“l”"/>Latenight
20
21<input name="“stage”" type="HIDDEN" value="“results”"/>
22<input type="SUBMIT" value="“Thanks!”"/>
23</form>
1
2
3}
上述代码中绝大多数都是创建表单所必需的HTML代码。在此,我们仅对所涉及到的PHP知识做一下简单介绍。
首先,我们来看一下代码开始处的变量 $PHP_SELF。变量 $PHP_SELF是PHP中一个很方便的指针,其变量值就是当前页面的URL地址。这样,我们就可以通过在随后的form标签中将TARGET的值设定为 $PHP_SELF,实现由该表单页面处理表单的目的。这里,我们使用 $PHP_SELF变量而不使用页面的实际地址,是因为通过使用 $PHP_SELF变量,我们可以方便对编写的页面代码进行修改和移动,而不必担心在每次改动之后重新输入新的页面地址。
另外,在使用 $PHP_SELF变量时,我们采用了如下方式:
global $PHP_SELF;
这表明代码中的 $PHP_SELF变量为全局变量。用户在使用PHP的过程中一定要注意PHP中任何的函数变量都是局部变量。这就意味着任何函数变量的作用域都只局限于包括该变量的函数本身。即使函数外存在同名变量,变量的值也不相同。因此,如果我们没有在代码中以显式方式声明函数变量 $PHP_SELF为全局变量具有全局唯一值的话,用户就会发现函数中的变量 $PHP_SELF的值将会为空,而不是我们预先所期望的当前页面的URL地址。
用户可能已经注意到我们将表单复选选项的名称设置为times[]数组,而把单选选项的名称设定为fruit常规变量。这是因为单选选项只允许用户选择唯一一个正确选项,因此fruit变量的值只可能是一个字符串;相反,复选选项则允许用户做多重性选择。如果,用户希望PHP能够保存用户可能作出的所有选择的话,就需要使用数组来保存所有的可能值。按照PHP的语法规则,我们通过在变量名times后面加上方括号,使PHP知道该变量是一个数组变量而不是普通的常规变量。
最后,我们设定了一个名为stage的隐含变量,通过使用该变量,我们可以控制是否显示表单还是处理表单结果。