PHP入门教程

发布时间:2007年03月13日      浏览次数:1281 次
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代码都被放置在“<?php”和“ ?>”中。此外,用户还可以选择使用诸如<SCRIPT LANGUAGE="php"></SCRIPT>等的形式。PHP引擎会自动识别并处理页面中所有位于PHP定界符之间的代码。
   PHP脚本语言的语法结构与C语言和Perl语言的语法风格非常相似。用户在使用变量前不需要对变量进行声明。使用PHP创建数组的过程也非常简单。PHP还具有基本的面向对象组件功能,可以极大的方便用户有效组织和封装自己编写的代码。
 
PHP语法概述
A. 基本语法
即使初次接触PHP的用户也会发现自己对PHP的语法风格并不陌生。
例如:<?php
echo “Hello!”;
?>
显示结果为“Hello!”。
PHP中,所有的变量都以标识“$”开头。我们可以对上述代码做如下改动:
<?php
$greeting = “Hello!”;
echo $greeting;
?>
改变后的代码显示结果不变。
PHP中使用“.”符号连接不同的字符串,而其它的算术运算符则继承了流行编程语言的风格。举例如下:
<?php
$greeting = “Hello!”;
$num = 3 + 2;
$num++;
echo “$greeting $num people!”;
?>
显示结果为“Hello!6 people!”。
  PHP对各种运算符及运算规则都有一套完整的规定,如果用户具有C或C++语言的编程背景的话,可以发现一切都得心应手。
   与Perl语言一样,在PHP中,如果在双引号包含的字符串中含有变量的话,该变量将用相应的变量值替换;如果字符串被单引号包含,则不做替换。例如:
<?php
$name = ‘PETER’;
$greeting_1 = “Hello, $name!”;
$greeting_2 = ‘Hello, $name!’;
echo “$greeting_1n”;
echo “$greeting_2n”;
?>
显示结果为:
Hello, PETER!
Hello, $name!
(注:上述代码中的“n”为换行符,只能在双引号字符串下使用)
 
B. 变量
PHP允许用户象使用常规变量一样使用环境变量。
<?php
echo “[$REQUEST_URI]”;
?>
则输出结果为[/scores/index.html]
 
C. 数组
用户在使用PHP创建数组时,可以把数组索引(包括常规索引或关联索引)加入方括号中。例如:
$fruit[0] = ‘banana’;
$fruit[1] = ‘apple’;
$favorites[ animal ] = ‘tiger’;
$favorites[ sports ] = ‘basketball’;
  如果用户在向数组赋值时不指明数组下标,PHP将自动把该对象加入到数组末尾。例如对于上述$fruit数组可以用以下方式赋值而保持结果不变,
$fruit[] = ‘banana’;
$fruit[] = ‘apple’;
同样,在PHP中,用户还可以根据需要建立多维数组。例如:
$people[‘David’][‘shirt’] = ‘blue’;
$people[‘David’][‘car’] = ‘red’;
$people[‘Adam’][‘shirt’] = ‘white’;
$people[‘Adam’][‘car’] = ‘silver’;
在PHP中,用户还可以使用array()函数快速建立数组。例如:
$fruit = array(‘banana’,‘apple’);
$favorites = array(‘animal’ => ‘tiger’, ‘sports’ => ‘basketball’);
或者使用array()函数创建多维数组:
$people = array (‘David’ => array(‘shirt’ => ‘blue’,’car’ => ‘red’),
‘Adam’ => array(‘shirt’ => ‘white’,‘car’ => ‘silver’));
此外,PHP还提供了内置函数count()用于计算数组中的元素数量。例如:
$fruit = array(‘banana’, ‘apple’);
print count($fruit);
显示结果为2。
 
D. 结构控制
在PHP中,用户可以使用“for”或“while”等的循环结构语句。例如:
for ($i = 4; $i < 8; $i++) {
print “I have eaten $i apples today.n”; }

$i = 4; while ($i < 8) {
print “I have eaten $i apples today.n”;
$i++;
}
返回结果为:
I have eaten 4 apples today.
I have eaten 5 apples today.
I have eaten 6 apples today.
I have eaten 7 apples today.
此外,用户还可以使用“if”和“elseif”等的选择性结构语句。例如:
if ($user_count > 200) {
print “The site is busy right now!”;}
elseif ($user_count > 100) {
print “The site is active right now!”;
else {
print “The site is idle - only $user_count user logged on.”;
}
表单处理
  PHP为用户提供了众多方便易用的强大功能。在表单的处理方面,PHP能够自动地将由客户端表单发送的数据赋值给相应变量,从而极大地简化了整个表单的处理过程。
举例来说,用户建立如下表单:
<INPUT TYPE=TEXT NAME=“name” VALUE=“PETER”>
当使用PHP对上述代码进行处理时,PHP自动创建一个名为$name的变量,并将变量值“PETER”赋予该变量。
用户可以直接对PHP创建的变量进行各种操作,例如显示变量值:
echo “Hi $name!”;
或对变量值进行验证:
if ($name == “PETER”) { echo “Please check out your email.”; }
  下面,我们就来看一下如何通过使用PHP创建并处理一个基本的表单。在示例当中,我们将会要求表单的填写者回答几个简短的问题,包括输入表单填写者的姓名,电子邮件地址,完成调查问卷等。
  这里,我们将所要设计的页面按照功能划分成表单显示和表单处理两个功能模块。这样,用户就不必设计两个不同的页面,而只需要在同一个PHP页面中通过逻辑控制显示或处理相应的功能模块。  
A. 表单显示
我们通过第一个功能模块来实现表单的显示。具体代码为:
<?php
function display_form()
{
global $PHP_SELF;
?>
 
<FORM TARGET=“<?php echo $PHP_SELF; ?>”METHOD=GET>
Name: <INPUT TYPE=TEXT NAME=“name”><BR>
Favorite Fruit: <INPUT TYPE=RADIO NAME=“fruit” VALUE=“apple”>Apple
<INPUT TYPE=RADIO NAME=“fruit” VALUE=“orange”>Orange
<INPUT TYPE=RADIO NAME=“fruit” VALUE=“banana”>Banana
Favorite Times to Eat Fruit:
<INPUT TYPE=CHECKBOXNAME=“times[]” VALUE=“m”>Morning
<INPUT TYPE=CHECKBOX NAME=“times[]” VALUE=“n”>Noon
<INPUT TYPE=CHECKBOX NAME=“times[]” VALUE=“d”>Dinner
<INPUT TYPE=CHECKBOX NAME=“times[]” VALUE=“l”>Latenight
<INPUT TYPE=HIDDEN NAME=“stage” VALUE= “results”>
<INPUT TYPE=SUBMIT VALUE= “Thanks!”>
</FORM>
 
<?php
}
?>
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!