• / 26
  • 下载费用:12 金币  

《PHP编程基础与-实例教学教材》-实验指导书(一~).doc

关 键 词:
PHP编程基础与-实例教学教材 PHP 编程 基础 实例 教学 教材 实验 指导书
资源描述:
《PHP编程基础与实例教程》实验指导书《PHP编程基础与实例教程》实验指导书预备实验 架设Windows下的PHP开发测试服务器0. 实验准备0.1系统环境和PHP相关软件、开发工具l 操作系统:WindowX(Windows95/98/me/XP/NT系列/2000系列/2003)具体到的机房环境,请在Windowsxp环境下做l Web服务器:Apache 2.0.63 (压缩包文件:apache_2.0.63-win32.exe)l PHP:PHP5.2.11 (压缩包文件:php-5.2.11-Win32.zip)l 数据库:MySQL 5.1.39 (压缩包文件:mysql-essential-5.1.39-win32.zip)l 脚本编辑器:EditPlus(已安装好):图形化编辑环境,速度慢,功能多,常用于复杂网页设计注: PHP相关软件、开发工具的获得:在我的ftp上下载0.2实验目的能够快速部署Windows下的开发测试服务器环境,以满足同学们在宿舍、家中自己机器上学习、研究和开发PHP程序设计的需要或是实际工作的需要。0.3 实验中的路径说明为说明问题的简单起见,路径为比较简单的示例路径,但已经过测试。实际运用时,路径完全可根据自己需要设定。1. PHP的安装和配置1.1安装① 下载PHP-5.2.5-Win32.ZIP软件包,不需要安装,在C盘根目录下建立文件夹C:\php 。将软件包解压缩到本目录下。② 在C:\php 目录下找到php.ini-dist文件,将其名字改为php.ini ,这是php的配置文件。③ 修改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 ” 去掉前面的“;”④ 修改完php.ini文件后,保存该文件,并复制到C:\Windows\ 目录下。⑤ 将C:\PHP\libmysql.dll 复制到C:\windows\system32 目录下注:操作系统安装目录,具体位置见表1表1:操作系统安装目录操作系统操作系统安装目录Windows95windowsWindows98windowsWindows mewindowswindowsWindows NT系列winntWindows 2000系列winntWindows 2003windows1.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配置服务单击[开始]->[程序]->[ Apache HTTP Server 2.2]->[ Configure Apache Server]->[ Edit the Apache httpd.conf configuration File],打开Apache的配置文件httpd.conf,按表2提示进行配置:注意:每处的配置要想起作用,必须将行首的#号(注释符号)去掉;□表示一个或多个空格表2 Apache配置序号参数名和示例参数值配置方法说明①BindAddress□(你所用机器的IP地址)修改地址绑定(指定服务器地址)②LoadModule□php5_module□c:/php/sapi/php5apache.dll添加将PHP配置为Apache的模块(Apache module)方式③Port□80修改指定端口④ServerAdmin□(你的邮箱地址,如ssl@dzu.edu.cn)修改指明管理员信箱⑤ServerName□ssl修改指明主机名称⑥DocumentRoot□"d:\Website\htdocs"修改Web文档发布主目录⑦修改该处目录应与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)在编辑完成后,我们还可以通过 “开始/程序/Apache HTTP Server 2.2/Configure Apache Server/Test Configuration"来测试配置文件是否有语法错误等。2)或者打开浏览器敲入:http://localhost 能否见到服务器到测试页面。能见到则配置成功。3. Apache : Web服务的安装和启动(1) 启动Apache服务:单击:[开始]->[程序]->[ Apache HTTP Server 2.2]-> [Control Apache service]->[ Start]。(默认情况下,每次操作系统启动时自动启动该服务,可更改)4. 测试Apache服务器对PHP的支持能力测试目的:检验配置后的Apache服务器是否提供了对PHP脚本的解释能力(支持PHP)用EditPlus编写测试脚本,存为d:\Website\htdocs\ceshi.php,内容为:说明:phpinfo()是PHP内置函数,用来显示PHP和Apache配置信息,在浏览器中敲入http://localhost/ceshi.php,回车后若显示类似图1的PHP配置页面(以Winxp下为例),则说明你的Apache服务器已经支持PHP脚本,能够解释PHP脚本了;若不显示类似画面,则配置有误,此时你的Apache不能够解释PHP脚本,需重新配置。 图15. MySQL的安装和启动数据库服务器①将mysql-essential-5.1.39-win32.zip解压缩后,双击setup.exe,按照提示,选择custom安装方式,然后一路默认,遇到输入密码的地方,输入123作为密码。②测试安装是否成功。单击“开始”,选择“MySQL→MySQL Server5.1→MySQL Command Line Client”,会出现如下图所示的窗口,然后输入root密码,根据提示操作即可 6. 测试PHP与MySQL的协同PHP方面:准备测试脚本connect.php,存放在d:\Website\htdocs下,其内容为:程序2-13:'; mysql_select_db('test')or die('不能选择数据库'); echo '连接test数据库已经成功';?>(1) 测试步骤在浏览器地址栏输入:http://localhost/connect.php,回车,显示如图2所示,则表明PHP 与MySQL能够协同工作了。 图2实验一 PHP基本语法实验0 实验准备0.1实验环境和相关工具软件具体到的机房环境,请在Windowsxp环境下做本实验:l 操作系统:Windowsxpl Web服务器:Apache 2.0.63 默认发布文档路径:c:\Apache\htdocsl PHP:PHP5.2.11 安装路径:c:\phpl 数据库:MySQL 5.1.39 使用默认路径l 脚本编辑器:记事本或EditPlus-v3.11.463H或Macromedia Dreamweaver MX中文版注意:使用以上脚本编辑器,若要保存为.php文件,必须在保存时指明扩展名为.php尤其是记事本,必须在保存时,单击“保存类型”下拉框,选择“所有文件(*.*)”类型,然后指定文件扩展名是.php,单击“保存”按钮后,保存的文件才能保证是.php文件。常见错误是直接保存,导致保存的文件其实是文本文件,如abc.php.txt等以.txt为扩展名的文本文件。0.2实验目的和内容实验目的:熟练掌握PHP语言的基础语法实验内容:从7个方面完成PHP基本语法实际体验,分列如下: 一、词法结构n 大小写n 语句和分号n 注释n 标识符二、数据类型n 字符串型n 布尔型n 数组型n 对象型n 资源型n 各种数据类型的检测三、变量n 变量的变量n 变量的作用域n 垃圾收集:变量的内存管理四、表达式和操作符n 隐式类型转换n 字符串连接操作符n 自增和自减操作符n 类型转换操作符n 其他操作符五、流控制语句n if语句n switch语句n while语句n for语句n foreach语句n exit语句n return语句(2-12)六、包含代码七、在Web页面中嵌入PHP0.3 实验中的约定所有实验程序均与讲义中的例子相对应,如程序1-1.php,对应讲义中的例子例1-1。1词法结构1.1大小写敏感预备知识 变量区分大小写,内置结构(while,for,if等)及关键字(echo,class等)不区分大小写【2-1】大小写敏感的例子PHP程序2-1送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)注意:要使运行结果达到真正分行(和HTML输出一致),请将程序2-1中的\n换成
,即可实现,如下例【2-1br】修改程序2-1后的程序2-1br,直接实现分行(将程序2-1中的\n换成
)PHP程序2-1br送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)";ECHO "\$NAME=$NAME
":EcHo "\$NaME=$NaME";?>原因:浏览器不解释(或者说不识别,或忽略)经PHP解释\n而成的空白换行,只有遇到
这个HTML中的换行标记,才解释成换行。为了直接达到预期换行效果,将不再使用\n,而是使用
1.2语句和分号预备知识 简单语句 复杂语句 分号的省略【2-2】语句和分号PHP程序2-2送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)"; //简单语句 echo "\$a的值等于\$b的值
"; }//上面{}部分为复杂语句echo "hello,world"; //此处分号可省略?>1.3注释预备知识 在必要的地方做注释 注释的形式及各自的适用处:Shell形式(#)、C++形式(//)、C形式(/* … */)【2-6】C形式的注释作用PHP程序2-6送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)

Some stuff you want to be HTML.

Now this is regular HTML…

1.4标识符(常量标识符)预备知识 使用define()设置常量标识符【2-7】使用define()设置常量标识符PHP程序2-7送到用户浏览器解释后显示的结果(运行结果,显示在浏览 显示在浏览器页面中的结果)2 数据类型2.1字符串预备知识 字符串的表示 单引号和双引号在字符转义上的不同作用:单引号仅转义反斜杠\和单引号’【2-8】单引号和双引号在字符转义上的不同作用PHP程序2-8送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)”; echo ‘Hi,$name’;//单引号中的变量名将被输出,因为单引号不认为$name是变量?>注意:双引号中的变量,若前面不加反斜杠\进行转义(将$原样输出),则在输出字串的时候将输出变量中的值【2-9】单引号仅支持的字符转义:反斜杠\和单引号’PHP程序2-9送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)2.2布尔型预备知识PHP中为false值的情况【2-10】判断布尔值PHP程序2-10送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)’;if(!$x) echo ‘$x有一个false值
’;if($y) echo ‘$y有一个true值
’;if(!$y) echo ‘$y有一个false值
’;?>2.3数组型预备知识:数组的创建、遍历;键名:数组元素的下标名称,一般是从0开始的整数,也可以是字符串;键值:数组元素中存储的值【2-11】数组的创建、遍历:发明家记录PHP程序2-11送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)’Edison’, ‘Rotary Engine’=>’Wankel’, ‘Toilet’=>’Crapper’);*/#遍历数组$person,显示其内容foreach($person as $name)//访问每个键 echo “Hello,$name
”;#遍历数组$creator,显示其内容foreach($creator as $invention=>$inventor) echo “$invention was created by $inventor
”;?>2.4对象型预备知识类:OOP的单元,是包含属性(变量)和方法(函数)的结构定义类的定义对象的创建、引用其属性和方法【2-12】类和对象的简单例子PHP程序2-12送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)name=$newname;return $this->name; }}$ed=new Person;$ed->name(‘Edison’);printf(“Hello,%s
”,$ed->name);$tc=new Person;$tc->name(‘Crapper’);printf(“Look out below,%s
”,$tc->name);?>2.5数据类型的检测预备知识数据类型检测函数【2-14】数据类型检测PHP程序2-14送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)3 变量3.1变量的变量预备知识变量的概念和作用;变量的声明和使用;变量的变量【2-15】PHP变量无类型检查,无须声明,类型随用随变PHP程序2-15送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)";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($what as $e) echo "$e
";if(is_array($what)) echo "\$what是数组型变量";?>【2-16】空变量的例子PHP程序2-16送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)【2-17】变量的变量PHP程序2-17送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)";echo "所以\$\$r=$$r
";echo "又因为$$r=".$$r."
";echo '故$$r='.$$r;echo "
:-)你明白了吗?";?>3.2变量的作用域预备知识变量按其作用域分为:局部变量、全局变量。静态变量、函数的参数属于局部变量;从局部访问全局变量的方法;从全局访问局部变量的方法【2-19】不能从全局(函数外部)直接访问局部变量PHP程序2-19送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)【2-20】从局部访问全局变量,方法1:使用global关键字声明PHP程序2-20送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)【2-21】从局部访问全局变量,方法2:引用全局变量数组$GLOBALSPHP程序2-21送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)【2-22】使用静态变量的好处::使全局可间接访问到PHP程序2-22送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)";}$counter=10;//这个$counter是全局的变量update_counter();update_counter();echo "全局变量\$counter这时的值=$counter";?>【2-23】全局不可直接访问局部变量(可通过将局部变量声明为静态的方法,参见2-22)PHP程序2-23送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)";}greet("孙寿龙");if($name==null)echo '$name是一个空变量,访问不到!';?>3.3垃圾收集预备知识无用变量的收回;PHP内存管理;引用计算;写时复制【2-24】PHP的写时复制PHP程序2-24";echo "新数组\$other的内容:
";foreach($other as $a) echo "$a
";echo "新数组\$worker的内容:
";foreach($worker as $b) echo "$b
"; echo "是不是很好玩?";?>PHP解释结果(HTML输出)(右键单击该页面,在快捷菜单中单击“查看源文件”命令可看到)送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)【2-25】垃圾收集:变量的回收——使用unset()回收变量(释放变量)PHP程序2-25送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)";$s1=isset($name);//$s1为falseif($s1) echo "\$name已存在,其值=$name
";else echo "\$name不存在,其值=$name
";$name="Fred";$s1=isset($name);//$s1为trueif($s1) echo "\$name已存在,其值=$name
";else echo "\$name不存在,其值=$name
";echo "现在从内存中释放(删除)\$name:
";unset($name);$s1=isset($name);//$s1为falseif($s1) echo "\$name已存在,其值=$name
";else echo "\$name不存在,其值=$name
";?>4. 表达式和操作符4.1隐式类型转换预备知识 数字间进行字符串拼接的规则;字符串转换数字后的数字值规则【2-26】数字间进行字符串拼接的规则:数字首先变为字串,然后再拼接PHP程序2-26送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)【2-27】字符串转换数字后的数字值规则假定以数字开始,该数字即为转换后的数字值;若未找到数字则转换后的数字值为0;若开头的数字包含一个句点或大写或小写的E,则转换后的数字值为浮点型PHP程序2-27送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)";echo "\$b=$b
";echo "\$c=$c
";echo "\$d=$d
";?>4.2字符串连接操作符预备知识 字符串连接操作符;数字与字串连接时,数字先转换成字串【2-28】数字在与字符串连接时,先自动变成字符串PHP程序2-28送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)类似的,如2-29:【2-29】和2-28差不多的程序PHP程序2-29送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)4.3自增自减操作符预备知识 数字的自增自减(按数字顺序);字母的自增自减(按字母顺序)【2-30】PHP程序2-30送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)";$a="a";while($a<="z"){ echo $a++; echo "
";}echo "大写字母自增:
"; $a="A";while($a<="Z"){ echo $a++; echo "
";}?> 请编程验证:
字符串字符串++
"a""b"
"z""a"
"spaz""spba"
"K9""L0"
"42""43"
(该图显示的是部分结果)4.4类型转换操作符预备知识 类型转换操作符;类型转换的临时性;类型转换的真正实现【2-31】类型转换的临时性PHP程序2-31送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)【2-32】类型转换的真正实现PHP程序2-32送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)";$a=(int)$a;if(is_int($a)) echo "转换类型并自赋值后,\$a是整型,值为:$a
";?>4.5其他操作符预备知识 错误抑制操作符(例子程序见2-13);三元操作符【2-33】三元操作符PHP程序2-33送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)";echo $a>$b?'$a>$b':'$a<$b';?>5.流控制语句5.1 if语句预备知识 if结构、if-else结构、if-else链接(层进)、if-elseif结构、if-else-endif结构【2-34】使用if-else-endif结构PHP程序2-34送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)";$user_validated=true;if($user_validated){ echo "欢迎你!
"; $greed=1;}else { echo "对不起,禁止访问!
"; exit;}echo "还可使用PHP提供的另一种方式:if-endif结构
";$user_validated="";if($user_validated): //注意冒号 echo "欢迎你!
"; $greed=1;else://注意冒号 echo "对不起,禁止访问!
"; exit;endif; //句尾是分号,不是冒号?>【2-35】if语句的使用:嵌入到HTML中(表单验证)PHP程序2-35送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)
欢迎你:
请重新登陆!【2-36】if语句的链接(层进)(使用if-else结构)PHP程序2-36送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)90) print("优秀");else if($fenshu>80&&$fenshu<=90) print("良好"); else if($fenshu>70&&$fenshu<=80) print("中等"); else if($fenshu>60&&$fenshu<=70) print("刚及格"); else if($fenshu<60) print("差");?>【2-37】if语句的链接(层进)(使用if-elseif结构)PHP程序2-37送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)";$fenshu=61;echo "你的分数是:$fenshu,属于:";if($fenshu>90) print("优秀");elseif($fenshu>80&&$fenshu<=90) print("良好");elseif($fenshu>70&&$fenshu<=80) print("中等");elseif($fenshu>60&&$fenshu<=70) print("刚及格");elseif($fenshu<60) print("差");?>【2-38】用if结构的HTML输出一般做法PHP程序2-38送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)";?>
60) echo "及格";else echo "不及格";?>

用三元操作符简化使更简洁的例子见2-39【2-39】用三元操作符简化使2-38更简洁的例子PHP程序2-39送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)";?>".($fenshu>60?"及格":"不及格").""; ?>

进一步的拼接字串的例子见程序2-39a.php【2-39a】用三元操作符简化使2-39更简洁的例子PHP程序2-39a";echo "
".($fenshu>60?"及格":"不及格")."
";?>PHP解释结果(HTML输出)(右键单击该页面,在快捷菜单中单击“查看源文件”命令可看到)送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)5.2 switch语句预备知识 switch的C语言形式、switch-endswitch结构、switch语句中case的合并【2-40】switch-endswith结构的用法PHP程序2-40送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)【2-41】case的合并PHP程序2-41送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)5.3 while语句预备知识 while的C语言形式(传统while(){}等结构)、while-endwhile结构【2-42】PHP程序2-42送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)【2-43】while-endwhile循环PHP程序2-43送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)5.4 for语句预备知识 fo循环的C语言形式(传统for(){}等结构)、for-endfor结构【2-44】for循环中多表达式应用PHP程序2-44送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)";}echo "使用for结构,计算结果是:
\$total=1+2+4+8+...+512=$total";?>【2-45】for循环的死循环的一个例子(因死机,效果图略)PHP程序2-45";?>5.5 foreach语句预备知识 foreach(){}语句;foreach-endforeach语句;循环体中对数组元素的遍历:访问每个键,访问每个键和键值实验程序见:程序2-115.6 exit语句预备知识 exit语句的作用;使用形式实验程序见:程序2-135.7 return语句预备知识 return语句的作用;使用形式实验程序见:程序2-126.在页面中嵌入PHP预备知识PHP嵌入Web页面中的几种形式;各自的适用场合【2-49】PHP代码以xml形式嵌入HTMLPHP程序2-49送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)this is my first PHP programLook,it is my first PHP program.

How cool is that?【2-50】PHP代码可放在HTML标签内部PHP程序2-50送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)25
展开阅读全文
  语墨文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:《PHP编程基础与-实例教学教材》-实验指导书(一~).doc
链接地址:http://www.wenku38.com/p-112590.html

                                            站长QQ:1002732220      手机号:18710392703    


                                                          copyright@ 2008-2020 语墨网站版权所有

                                                             经营许可证编号:蜀ICP备18034126号

网站客服微信
收起
展开