《PHP编程基础与实例教程》实验指导书一.docx
- 文档编号:4322537
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:43
- 大小:919.46KB
《PHP编程基础与实例教程》实验指导书一.docx
《《PHP编程基础与实例教程》实验指导书一.docx》由会员分享,可在线阅读,更多相关《《PHP编程基础与实例教程》实验指导书一.docx(43页珍藏版)》请在冰豆网上搜索。
《PHP编程基础与实例教程》实验指导书一
《PHP编程基础与实例教程》
实验指导书
预备实验架设Windows下的PHP开发测试服务器
0.实验准备
0.1系统环境和PHP相关软件、开发工具
●操作系统:
WindowX(Windows95/98/me/XP/NT系列/2000系列/2003)
具体到的机房环境,请在Windowsxp环境下做
●Web服务器:
Apache2.0.63(压缩包文件:
apache_2.0.63-win32.exe)
●PHP:
PHP5.2.11(压缩包文件:
php-5.2.11-Win32.zip)
●数据库:
MySQL5.1.39(压缩包文件:
mysql-essential-5.1.39-win32.zip)
●脚本编辑器:
EditPlus(已安装好):
图形化编辑环境,速度慢,功能多,常用于复杂网页设计
注:
PHP相关软件、开发工具的获得:
在我的ftp上下载
0.2实验目的
能够快速部署Windows下的开发测试服务器环境,以满足同学们在宿舍、家中自己机器上学习、研究和开发PHP程序设计的需要或是实际工作的需要。
0.3实验中的路径说明
为说明问题的简单起见,路径为比较简单的示例路径,但已经过测试。
实际运用时,路径完全可根据自己需要设定。
1.PHP的安装和配置
1.1安装
1下载PHP-5.2.5-Win32.ZIP软件包,不需要安装,在C盘根目录下建立文件夹C:
\php。
将软件包解压缩到本目录下。
2在C:
\php目录下找到php.ini-dist文件,将其名字改为php.ini,这是php的配置文件。
3修改php.ini文件,过程如下:
(1)找到extension_dir=”./”,改为extension_dir=”C:
/php/ext”
(2)找到“;extension=php_mbstring.dll”去掉前面的“;”(3)找到“;extension=php_mysql.dll”去掉前面的“;”(4)找到“;extension=php_mysqli.dll”去掉前面的“;”
4修改完php.ini文件后,保存该文件,并复制到C:
\Windows\目录下。
5将C:
\PHP\libmysql.dll复制到C:
\windows\system32目录下
注:
操作系统安装目录,具体位置见表1
表1:
操作系统安装目录
操作系统
操作系统安装目录
Windows95
windows
Windows98
windows
Windowsme
windows
windows
WindowsNT系列
winnt
Windows2000系列
winnt
Windows2003
windows
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文档发布主目录
⑦
\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服务: 单击: [开始]->[程序]->[ApacheHTTPServer2.2]->[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数据库 mysql_select_db('test')ordie('不能选择数据库'); echo'连接test数据库已经成功'; ? > (1)测试步骤 在浏览器地址栏输入: http: //localhost/connect.php,回车,显示如图2所示,则表明PHP与MySQL能够协同工作了。 图2 实验一PHP基本语法实验 0实验准备 0.1实验环境和相关工具软件 具体到的机房环境,请在Windowsxp环境下做本实验: ●操作系统: Windowsxp ●Web服务器: Apache2.0.63默认发布文档路径: c: \Apache\htdocs ●PHP: PHP5.2.11安装路径: c: \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 送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果) php $name="hello1,world1"; $NAME="hello2,world2"; $NaME="hello3,world3"; echo"\$name=$name\n"; ECHO"\$NAME=$NAME\n"; EcHo"\$NaME=$NaME"; ? > 注意: 要使运行结果达到真正分行(和HTML输出一致),请将程序2-1中的\n换成 【2-1br】修改程序2-1后的程序2-1br,直接实现分行(将程序2-1中的\n换成 PHP程序2-1br 送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果) php $name="hello1,world1"; $NAME="hello2,world2"; $NaME="hello3,world3"; echo"\$name=$name ECHO"\$NAME=$NAME EcHo"\$NaME=$NaME"; ? > 原因: 浏览器不解释(或者说不识别,或忽略)经PHP解释\n而成的空白换行,只有遇到 为了直接达到预期换行效果,将不再使用\n,而是使用 1.2语句和分号 预备知识 简单语句复杂语句分号的省略 【2-2】语句和分号 PHP程序2-2 送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果) php $a=10; $b=10; if($a==$b) { echo"注意: echo"\$a的值等于\$b的值 } //上面{}部分为复杂语句 echo"hello,world";//此处分号可省略 ? > 1.3注释 预备知识 在必要的地方做注释注释的形式及各自的适用处: Shell形式(#)、C++形式(//)、C形式(/*…*/) 【2-6】C形式的注释作用 PHP程序2-6 送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果) php $l=12;$m=13; /*注释从这里开始 ? > SomestuffyouwanttobeHTML.
';
,即可实现,如下例
)
";
":
这个HTML中的换行标记,才解释成换行。
";//简单语句
";
=$n=14;*/
echo("l=$lm=$mn=$n");
?
>
NowthisisregularHTML…
1.4标识符(常量标识符)
预备知识
使用define()设置常量标识符
【2-7】使用define()设置常量标识符
PHP程序2-7
送到用户浏览器解释后显示的结果(运行结果,显示在浏览显示在浏览器页面中的结果)
php
define(‘PUB’,”O’Reilly&Associates”);
echoPUB;
?
>
2数据类型
2.1字符串
预备知识
字符串的表示单引号和双引号在字符转义上的不同作用:
单引号仅转义反斜杠\和单引号’
【2-8】单引号和双引号在字符转义上的不同作用
PHP程序2-8
送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)
php
$name=”SunShoulong”;
//双引号中的变量值将被输出
echo“Hi,$name
”;
echo‘Hi,$name’;//单引号中的变量名将被输出,因为单引号不认为$name是变量
?
>
注意:
双引号中的变量,若前面不加反斜杠\进行转义(将$原样输出),则在输出字串的时候将输出变量中的值
【2-9】单引号仅支持的字符转义:
反斜杠\和单引号’
PHP程序2-9
送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)
php
$dos_dir=’c:
\\windows\\system’;
$publisher=’TimO\’Reilly’;
echo“$dos_dir$publisher”;
?
>
2.2布尔型
预备知识
PHP中为false值的情况
【2-10】判断布尔值
PHP程序2-10
送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)
php
$x=5;
$y=””;
if($x)echo‘$x有一个true值
’;
if(!
$x)echo‘$x有一个false值
’;
if($y)echo‘$y有一个true值
’;
if(!
$y)echo‘$y有一个false值
’;
?
>
2.3数组型
预备知识:
数组的创建、遍历;键名:
数组元素的下标名称,一般是从0开始的整数,也可以是字符串;键值:
数组元素中存储的值
【2-11】数组的创建、遍历:
发明家记录
PHP程序2-11
送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)
php
#以数字键名引用的方式,通过给各数组元素赋值的方法#直接创建人名数组$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”;
/*上面的方法可用array方法替代,创建后键名也是数字的,按赋值先后,从0开始依次递增
$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
送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)
php
ClassPerson{
var$name=’’;
functionname($newname=NULL){
if(!
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->name);
?
>
2.5数据类型的检测
预备知识
数据类型检测函数
【2-14】数据类型检测
PHP程序2-14
送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)
php
$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
#PHP变量无类型检查
$what="Fred";
echo"\$what的值=$what
";
if(is_string($what))echo"\$what是字符串型变量
";
$what=35;
echo"\$what的值=$what
";
if(is_int($what))echo"\$what是整型变量
";
$what=array('Fred','35','wilma');
echo"\$what的值为:
";
foreach($whatas$e)
echo"$e
";
if(is_array($what))echo"\$what是数组型变量";
?
>
【2-16】空变量的例子
PHP程序2-16
送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)
php
#一个没有设置值的变量,它的值是NULL,
#表示它是一个空变量
if($uninitialized_variable==NULL)
//此句可换为:
if(is_null($uninitialized_variable))
echo"\$uninitialized_variable是空变量";
?
>
【2-17】变量的变量
PHP程序2-17
送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)
php
#变量的变量
$r='i';
$$r=1;
echo"因为\$r=$r
";
echo"所以\$\$r=$$r
";
echo"又因为$$r=".$$r."
";
echo'故$$r='.$$r;
echo"
:
-)你明白了吗?
";
?
>
3.2变量的作用域
预备知识
变量按其作用域分为:
局部变量、全局变量。
静态变量、函数的参数属于局部变量;从局部访问全局变量的方法;从全局访问局部变量的方法
【2-19】不能从全局(函数外部)直接访问局部变量
PHP程序2-19
送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)
php
#下面的函数更新了一个局部变量而不是全局变量
functionupdate_counter(){
$counter++;//执行完本句即函数结束时,$counter的值被PHP抛弃,该变量所占内存资源被收回
}
$counter=10;
update_counter();
echo$counter;//这个$counter是全局变量
?
>
【2-20】从局部访问全局变量,方法1:
使用global关键字声明
PHP程序2-20
送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)
php
#在函数内访问全局变量--方法1:
使用global关键字声明
functionupdate_counter(){
global$counter;//告诉PHP,$counter是全局中那个$counter
$counter++;
}
$counter=10;
update_counter();
echo$counter;
?
>
【2-21】从局部访问全局变量,方法2:
引用全局变量数组$GLOBALS
PHP程序2-21
送到用户浏览器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP编程基础与实例教程 PHP 编程 基础 实例教程 实验 指导书