PHP程序设计实验指导书1文档格式.docx
《PHP程序设计实验指导书1文档格式.docx》由会员分享,可在线阅读,更多相关《PHP程序设计实验指导书1文档格式.docx(65页珍藏版)》请在冰点文库上搜索。
![PHP程序设计实验指导书1文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/1211ed9a-6818-4889-b16a-0ee93a7d874e/1211ed9a-6818-4889-b16a-0ee93a7d874e1.gif)
5将C:
\PHP\libmysql.dll复制到C:
\windows\system32目录下
操作系统安装目录,具体位置见表1
表1:
操作系统安装目录
操作系统
1.2配置
通过修改php.ini中的参数来实现。
对MySQL而言,若无特殊要求,一般无须配置。
因为PHP在php.ini中已经做好了对MySQL的配置,所以一般无须修改。
2.Apache的安装和配置
2.1安装软件
双击apache_2.0.63-win32.exe,按照提示,选择custom安装方式,然后一路默认,即完成安装。
注意:
如果您的电脑安装了IIS,请先到控制面板关闭IIS服务,因为IIS服务器与Apache服务器都使用一个端口。
2.2配置服务
单击[开始]->
[程序]->
[ApacheHTTPServer2.2]->
[ConfigureApacheServer]->
[EdittheApachehttpd.confconfigurationFile],打开Apache的配置文件httpd.conf,按表2提示进行配置:
每处的配置要想起作用,必须将行首的#号(注释符号)去掉;
□表示一个或多个空格
表2Apache配置
序号
参数名和示例参数值
配置方法
说明
①
BindAddress□(你所用机器的IP地址)
修改
地址绑定(指定服务器地址)
②
LoadModule□php5_module□c:
/php/sapi/php5apache.dll
添加
将PHP配置为Apache的模块(Apachemodule)方式
③
Port□80
指定端口
④
ServerAdmin□(你的邮箱地址,如ssl@)
指明管理员信箱
⑤
ServerName□ssl
指明主机名称
⑥
DocumentRoot□"
d:
\Website\htdocs"
Web文档发布主目录
⑦
<
Directory□"
\Website\htdocs"
>
该处目录应与Web文档发布主目录一致
⑧
ScriptAlias□/php/□"
c:
/php/"
AddType□application/x-httpd-php□.php
Action□application/x-httpd-php□"
/php/php.exe"
指明脚本路径
指明PHP脚本扩展名
指明PHP脚本解释器程序名
⑨
DirectoryIndex□index.htm□index.php
指定默认文档
*描述以httpd.conf文件的行文顺序进行
*表中路径、地址、主机名、信箱等,实际配置时请根据自己情况进行
按表1所述,参考Apache配置文件样本,修改完毕后,保存。
测试配置是否成功。
1)在编辑完成后,我们还可以通过“开始/程序/ApacheHTTPServer2.2/ConfigureApacheServer/TestConfiguration"
来测试配置文件是否有语法错误等。
2)或者打开浏览器敲入:
http:
//localhost能否见到服务器到测试页面。
能见到则配置成功。
3.Apache:
Web服务的安装和启动
(1)启动Apache服务:
单击:
[开始]->
[ControlApacheservice]->
[Start]。
(默认情况下,每次操作系统启动时自动启动该服务,可更改)
4.测试Apache服务器对PHP的支持能力
测试目的:
检验配置后的Apache服务器是否提供了对PHP脚本的解释能力(支持PHP)
用EditPlus编写测试脚本,存为d:
\Website\htdocs\ceshi.php,内容为:
?
php
echophpinfo();
说明:
phpinfo()是PHP内置函数,用来显示PHP和Apache配置信息,在浏览器中敲入http:
//localhost/ceshi.php,回车后若显示类似图1的PHP配置页面(以Winxp下为例),则说明你的Apache服务器已经支持PHP脚本,能够解释PHP脚本了;
若不显示类似画面,则配置有误,此时你的Apache不能够解释PHP脚本,需重新配置。
图1
5.MySQL的安装和启动数据库服务器
①将mysql-essential-5.1.39-win32.zip解压缩后,双击setup.exe,按照提示,选择custom安装方式,然后一路默认,遇到输入密码的地方,输入123作为密码。
②测试安装是否成功。
单击“开始”,选择“MySQL→MySQLServer5.1→MySQLCommandLineClient”,会出现如下图所示的窗口,然后输入root密码,根据提示操作即可
6.测试PHP与MySQL的协同
PHP方面:
准备测试脚本connect.php,存放在d:
\Website\htdocs下,其内容为:
程序2-13:
$connection=mysql_connect('
127.0.0.1'
'
root'
123'
)ordie('
不能连接到MySQL数据库:
'
.mysql_error());
echo'
已经成功连接MySQL数据库<
br/>
;
mysql_select_db('
test'
)ordie('
不能选择数据库'
);
连接test数据库已经成功'
(1)测试步骤
在浏览器地址栏输入:
//localhost/connect.php,回车,显示如图2所示,则表明PHP与MySQL能够协同工作了。
图2
实验二PHP基本语法实验
0实验准备
0.1实验环境和相关工具软件
具体到的机房环境,请在Windowsxp环境下做本实验:
Windowsxp
Apache2.0.63默认发布文档路径:
\Apache\htdocs
PHP5.2.11安装路径:
\php
MySQL5.1.39使用默认路径
记事本
或
EditPlus-v3.11.463H
MacromediaDreamweaverMX中文版
使用以上脚本编辑器,若要保存为.php文件,必须在保存时指明扩展名为.php
尤其是记事本,必须在保存时,单击“保存类型”下拉框,选择“所有文件(*.*)”类型,然后指定文件扩展名是.php,单击“保存”按钮后,保存的文件才能保证是.php文件。
常见错误是直接保存,导致保存的文件其实是文本文件,如abc.php.txt等以.txt为扩展名的文本文件。
0.2实验目的和内容
实验目的:
熟练掌握PHP语言的基础语法
实验内容:
从7个方面完成PHP基本语法实际体验,分列如下:
一、词法结构
⏹大小写
⏹语句和分号
⏹注释
⏹标识符
二、数据类型
⏹字符串型
⏹布尔型
⏹数组型
⏹对象型
⏹资源型
⏹各种数据类型的检测
三、变量
⏹变量的变量
⏹变量的作用域
⏹垃圾收集:
变量的内存管理
四、表达式和操作符
⏹隐式类型转换
⏹字符串连接操作符
⏹自增和自减操作符
⏹类型转换操作符
⏹其他操作符
五、流控制语句
⏹if语句
⏹switch语句
⏹while语句
⏹for语句
⏹foreach语句
⏹exit语句
⏹return语句(2-12)
六、包含代码
七、在Web页面中嵌入PHP
0.3实验中的约定
所有实验程序均与讲义中的例子相对应,如程序1-1.php,对应讲义中的例子例1-1。
1词法结构
1.1大小写敏感
预备知识
变量区分大小写,内置结构(while,for,if等)及关键字(echo,class等)不区分大小写
【2-1】大小写敏感的例子
PHP程序2-1
送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)
$name="
hello1,world1"
$NAME="
hello2,world2"
$NaME="
hello3,world3"
echo"
\$name=$name\n"
ECHO"
\$NAME=$NAME\n"
EcHo"
\$NaME=$NaME"
要使运行结果达到真正分行(和HTML输出一致),请将程序2-1中的\n换成<
br>
,即可实现,如下例
【2-1br】修改程序2-1后的程序2-1br,直接实现分行(将程序2-1中的\n换成<
)
PHP程序2-1br
\$name=$name<
"
\$NAME=$NAME<
:
原因:
浏览器不解释(或者说不识别,或忽略)经PHP解释\n而成的空白换行,只有遇到<
这个HTML中的换行标记,才解释成换行。
为了直接达到预期换行效果,将不再使用\n,而是使用<
1.2语句和分号
简单语句复杂语句分号的省略
【2-2】语句和分号
PHP程序2-2
if($a==$b)
{
echo"
注意:
//简单语句
\$a的值等于\$b的值<
}
//上面{}部分为复杂语句
hello,world"
//此处分号可省略
1.3注释
在必要的地方做注释注释的形式及各自的适用处:
Shell形式(#)、C++形式(//)、C形式(/*…*/)
【2-6】C形式的注释作用
PHP程序2-6
$l=12;
$m=13;
/*注释从这里开始
p>
SomestuffyouwanttobeHTML.<
/p>
=$n=14;
*/
echo("
l=$lm=$mn=$n"
Now<
b>
this<
/b>
isregularHTML…<
1.4标识符(常量标识符)
使用define()设置常量标识符
【2-7】使用define()设置常量标识符
PHP程序2-7
送到用户浏览器解释后显示的结果(运行结果,显示在浏览显示在浏览器页面中的结果)
define(‘PUB’,”O’Reilly&
Associates”);
echoPUB;
2数据类型
2.1字符串
字符串的表示单引号和双引号在字符转义上的不同作用:
单引号仅转义反斜杠\和单引号’
【2-8】单引号和双引号在字符转义上的不同作用
PHP程序2-8
$name=”SunShoulong”;
//双引号中的变量值将被输出
echo“Hi,$name<
”;
echo‘Hi,$name’;
//单引号中的变量名将被输出,因为单引号不认为$name是变量
双引号中的变量,若前面不加反斜杠\进行转义(将$原样输出),则在输出字串的时候将输出变量中的值
【2-9】单引号仅支持的字符转义:
反斜杠\和单引号’
PHP程序2-9
$dos_dir=’c:
\\windows\\system’;
$publisher=’TimO\’Reilly’;
echo“$dos_dir$publisher”;
2.2布尔型
预备知识
PHP中为false值的情况
【2-10】判断布尔值
PHP程序2-10
$x=5;
$y=””;
if($x)echo‘$x有一个true值<
’;
if(!
$x)echo‘$x有一个false值<
if($y)echo‘$y有一个true值<
$y)echo‘$y有一个false值<
2.3数组型
预备知识:
数组的创建、遍历;
键名:
数组元素的下标名称,一般是从0开始的整数,也可以是字符串;
键值:
数组元素中存储的值
【2-11】数组的创建、遍历:
发明家记录
PHP程序2-11
#以数字键名引用的方式,通过给各数组元素赋值的方法#直接创建人名数组$person
$person[0]=”Edison”;
$person[1]=”Wankel”;
$person[2]=”Crapper”;
/*上面的方法可用array方法替代,创建后键名也是数字的,按赋值先后,从0开始依次递增
$person=array(‘Edison’,’Wankel’,’Crapper’);
//一条语句
#以字串键名引用的方式,通过给各数组元素赋值的方法#直接创建发明家数组$creator
$creator[‘Lightbulb’]=”Edison”;
$creator[‘RotaryEngine’]=”Wankel”;
$creator[‘Toilet’]=”Crapper”;
$creator=array(‘Lightbulb’=>
’Edison’,
‘RotaryEngine’=>
’Wankel’,
‘Toilet’=>
’Crapper’);
#遍历数组$person,显示其内容
foreach($personas$name)//访问每个键
echo“Hello,$name<
#遍历数组$creator,显示其内容
foreach($creatoras$invention=>
$inventor)
echo“$inventionwascreatedby$inventor<
2.4对象型
类:
OOP的单元,是包含属性(变量)和方法(函数)的结构定义
类的定义
对象的创建、引用其属性和方法
【2-12】类和对象的简单例子
PHP程序2-12
ClassPerson{
var$name=’’;
functionname($newname=NULL){
is_null($newname))
$this->
name=$newname;
return$this->
name;
}}
$ed=newPerson;
$ed->
name(‘Edison’);
printf(“Hello,%s<
”,$ed->
name);
$tc=newPerson;
$tc->
name(‘Crapper’);
printf(“Lookoutbelow,%s<
”,$tc->
2.5资源型
资源的概念:
以数据库应用为例,在同时有众多的数据库连接存在时,要进行查询和关闭连接等操作,必须指明这些操作是对哪个连接的,所以有必要给每个连接赋予一个标识值,一般是整数。
这种标识值的数据类型称为资源型。
资源的回收:
程序结束时资源自动关闭,资源值被回收;
作为局部变量的资源,当函数调用结束时,该变量的值自动被PHP收回;
显示地关闭资源
【2-13】类和对象的简单例子
//连接数据库
$hostname="
$username="
$password="
开始建立与服务器的连接……<
//$server_link为资源型变量
$server_link=@mysql_connect($hostname,$username,$password)ordie("
连接服务器失败!
程序中断执行!
if($server_link)echo"
与服务器的连接成功!
开始打开数据库test……<
//$db_link为资源型变量
$db_link=@mysql_select_db("
test"
$server_link)ordie("
连接数据库失败!
//die是exit的别名,它们的作用是强制中断程序执行
//若程序在这里终止执行,则上面的资源型变量所占内存资源将自动回收(释放资源型变量)
打开数据库test成功!
开始从数据库test的表abc中取出数据……<
//将查询结果存入数组(遍历记录集,将记录集中的数据转到数组)
$sql="
select*fromabc"
//$result为资源型变量
$result=mysql_query($sql,$server_link);
$i=0;
while($temp_array=mysql_fetch_array($result))
{$abc_array[$i][0]=$temp_array["
a"
];
$abc_array[$i][1]=$temp_array["
b"
$abc_array[$i][2]=$temp_array["
c"
$i++;
取出数据完毕!
mysql_free_result($result);
//释放记录集,这是显式地关闭资源,若程序终止执行,该关闭将自动进行
开始关闭与服务器的连接……<
//断开数据库连接,这也是显式地使用关闭函数回收资源变量
$db_close=@mysql_close($server_link);
//$db_close为布尔型变量
if($db_close)echo"
关闭与服务器的连接成功!
elseexit("
关闭与服务器的连接失败!
开始显示数据……<
//将数组中的数据输出到浏览器(各列以双等号间隔)
a列数据==b列数据==c列数据<
for($i=0;
$i<
count($abc_array);
$i++)
echo$abc_array[$i][0]."
=="
.$abc_array[$i][1]."
.$abc_array[$i][2]."
显示数据结束,程序执行完毕。
PHP解释结果(HTML输出)(右键单击该页面,在快捷菜单中单击“查看源文件”命令可看到)
2.6数据类型的检测
数据类型检测函数
【2-14】数据类型检测
PHP程序2-14
$x=2.5;
if(is_int($x))echo'
$x是整型变量'
if(is_float($x))echo'
$x是浮点型变量'
if(is_string($x))echo'
$x是字串型变量'
if(is_bool($x))echo'
$x是布尔型变量'
if(is_array($x))echo'
$x是数组型变量'
if(is_object($x))echo'
$x是对象型变量'
if(is_resource($x))echo'
$x是资源型变量'
if(is_null($x))echo'
$x是NULL型变量'
3变量
3.1变量的变量
变量的概念和作用;
变量的声明和使用;
变量的变量
【2-15】PHP变量无类型检查,无须声明,类型随用随变
PHP程序2-15
#PHP变量无类型检查
$what="
Fred"
\$what的值=$what<
if(is_string