




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、采用服务器端嵌入式脚本语言PHP3进行Linux下的网站开发 服务器端脚本技术是一种非常有用的东西,将它和客户端脚本技术联合起来应用可以制作出功能极其强大的页面。就象热火朝天的ASP,那就是一种服务器端脚本技术。通常用的服务器端脚本技术是CGI,NSAPI/ISAPI/FastCGI等等都是对它的改善和扩展。至于用什么语言来实现CGI技术,没有任何规定,大家一般使用Perl,因为它的字符功能比较强大。到了需要速度的场合,就用C来实现。用Perl/C等写的CGI脚本是一种“非嵌入式”的服务
2、器端脚本,因为它是一个单独的程序,而不是嵌在HTML文档中再通过另一个程序解释替换。例如,下面的Perl程序:print "Content-type:text/htmlnn"print <<HeadofHTML;<HTML><HEAD><TITLE>Hello!</TITLE></HEAD><BODY>HeadofHTMLprint "<CENTER>aaa</CENTER>"print "</BODY></HTML&g
3、t;"它中间虽然也有一段似乎是HTML文档,但那是HTML文档嵌入了Perl程序,而不是反过来。PHP是一种跨平台的服务器端脚本技术。它最初是一个人为了写他的主页而用Perl写的"包装"程序,后来因为用的人多了,就了起来,现在已经是3.0版,用C实现,在Unix和Windows 95/NT下都可以跑起来。一、编译安装PHP3.0有几个平台下的编译好的版本,也有源码版本。PHP3.0内部带了对几种常用数据库的支持,包括:Sybase,Oracle,mSQL,mySQL,PostgresQL,ODBC,dBase等。如果编译它的源码时选择对这些数据库中某几个的支持,那
4、么必须事先有它们的客户库。在Unix下编译的方法是:先解压,然后运行"./configure 选项",再运行"make"和"make install".选项中比较重要的有:"-enable-msql=msql库路径"等数据库选项和"-enable-apache=apache源程序路径"等。如果选择了-enable-apache,那么编译出的将是一个库文件,make install将把这个库安装到apache源程序中,然后再编译apache,可以得到支持php的apache服务器。否则,生成的将是
5、一个解释程序。在Windows下,有一个安装程序,界面不太好,而且有几个文件会报告找不到,跳过就可以了。装上后要把php3目录设成可执行的。Readme中说要手工修改Registry,但似乎用不着。安装上之后,系统应该支持对.php3和.phps文件的HTTP读取了。(在Unix下需要修改服务器的srm.conf文件,具体看README).如果安装时连进了apache服务器,那么速度应该是最快的。如果作为CGI程序执行,速度也还将就。如果系统支持FastCGI,那么解释程序也可以作为FastCGI程序运行。Windows下支持ISAPI的解释程序还没有出来。现在我们来看看第一个php3脚本,照
6、例是Hello,world.<HTML><HEAD><TITLE>First PHP3 Script</TITLE></HEAD><BODY><CENTER><?echo "Hello, world!"?></CENTER></BODY></HTML>从上面的例子应该很容易看出php3文件的写法.用<?和?>括起来的部分就是php3程序段,解释器对其余部分不作处理,将这些程序段执行后以其输出代替(echo语句输出一个无格式字符串,p
7、rintf语句类似于C的同名函数.)同样可以看出,php3程序虽然是文本,但客户端只能看见解释后的结果(除非你提供同名的phps文件),因此对客户端是保密的,这也是绝大部分服务器端脚本的特点.二、变量和数组PHP和一般的解释性语言一样,不需要事先定义变量.如果你试着使用一个没有赋过值的变量,那么返回的值是空字符串.对一个变量赋值则也就同时分配了这个变量的内存.PHP的变量名前面必须有一个$号,这也是很多脚本语言的惯例了.1 例如:$a=1;$b=1.0;
8、$c="Hello!"都是合法的PHP语句.PHP中的数组是这样定义的:$a1="a"$a2="b"它会自动扩展,不必预先设定上限.其实数组下标也可以是一个字符串,例如:$a"a"=1;$a"b"="Hello!"这时它实际上是一个哈希表,就象Tcl中的所谓数组一样.PHP中有一种类似于指针的用法,例如:$a = "b"$a = "c"则后一句产生了一个$b变量并给它赋值"c".PHP变量之间的运算符和C的类似,例如
9、也有:+,-,*,/,%,&,|,&&,|,!,+=,-=,+,-等PHP3.0定义了一个字符串相加运算符".",和Perl的一样.PHP的变量类型可以自动转换,如果需要强制转换,做法和C的一样.它有Integer,Double,String三种简单类型.要遍历一个HASH表,可以这样:$i"a" = 0;$i"c" = 1;reset($i);for ($j=1;$j<=count($i);$j+) $k = key($i);echo "$k, $i$k"echo "<
10、;BR>"next($i);PHP中的控制流语句与C几乎完全一样,也有if.else, while, for, switch, break, exit.三、函数的使用PHP3.0中的函数如下例:function test($a, $b) return $a*2+$b;函数和C差不多,可以递归调用.PHP3.0的变量作用域规定也类似于C,即缺省认为主程序中的变量是全局变量,而函数中的变量都是局部变量,即使有同名的全局变量也不使用.如果在函数中要使用全局变量,则必须在函数头上用global语句声明,例如:function .global $a, $b;.如果函数头上用static语
11、句声明了一些变量,那么这些变量是静态的,其含义与C语言中的相同.PHP中提供include语句,类似于C ereg(正规表达式,字符串,匹配部分数组名);PHP3.0中的正规表达式大体类似于grep中用的.(2)ereg_replace,eregi_replace这些是替换函数.用法:ereg_replace(正规表达式,替换串,原字符串);字符串处理函数中有一个strtr,是"翻译"函数,类似于Perl中的tr/././,用法:strtr(字符串,"从","到");例如:strtr(&q
12、uot;aaabb","ab","cd")返回"cccdd".(3)split与explode函数有些类似,但这次可以在匹配某正规表达式的地方分割字符串.用法:split(正规表达式,字符串,取出前多少项);六、文件的操作PHP3.0中的文件操作函数大体和C的类似,但有一些扩充,特别是除了支持对本机文件的访问外,也支持对HTTP和FTP的URL进行访问,只要把这些URL作为文件名传递给文件操作函数就可以了.主要的文件操作函数有:(1)fclose,feof,fgetc,fgets,fopen,fputs,fseek,ftel
13、l,mkdir,readlink,rename,rewind,rmdir,stat,unlink这些和C语言中的同名函数都差不多.(2)chgrp,chmod,chown,copy这些的意思也都应该容易理解:chgrp(文件名,组);chmod(文件名,模式);chown(文件名,用户);copy(源文件名,目标文件名);注意这些函数用的是文件名而不是fopen返回的文件号.(3)file_exists,fileatime,filectime,filegroup,fileinode,filemtime,fileowner,filesize,filetype,fileperms,fileumas
14、k,is_dir,is_executable,is_file,is_link,is_readable,is_writeable这些是文件信息函数,大多是接受一个文件名作为参数的.(4)fgetss用法:fgetss(文件号,最大长度) 八、时间函数PHP中的时间函数有这么些:(1)date用法:date(格式,时间);如果没有时间参数,则使用当前时间.格式是一个字符串,其中以下字符有特殊意义:U 替换成从一个起始时间(好象是1970年1月1日)以来的秒数Y 替换成4位的年号.y 替换成2位的年号.F 替换成月份的全称.M 替换成月份的英文简称.m
15、替换成月份数.z 替换成从当年1月1日以来的天数.d 替换成日数.l 替换成星期几的英文全称.D 替换成星期几的英文简称.w 替换成星期几(数字).H 替换成小时数(24小时制).h 替换成小时数(12小时制). i 替换成分钟数.s 替换成秒数.A 替换成"AM"或"PM".a 替换成"am"或"pm".S 替换成序数字后缀,例如:"st","nd","rd","th".函数返回作过了替换的格式串.(2)getdate(时间)返回一个
16、哈希表,各下标是:"seconds" - 秒数"minutes" - 分数"hours" - 小时数"mday" - 日数"mon" - 月份数"year" - 年号"yday" - 1月1日以来的天数"weekday" - 星期几,英文全称"month" - 月份,英文全名(3)gmdate与date类似,但先将时间转换成格林威治标准时.(4)mktime用法:mktime(小时数< &
17、#160; (7)checkdate用法:checkdate(月,日,年);返回逻辑真或逻辑假.如果:1年在1900和32767之间(包括1900与32767);2月在1到12之间;3日在该月的允许日数范围内(考虑了闰年);则返回逻辑真.(8)set_time_limit用法:set_time_limit(秒数);规定从该句运行时起程序必须在指定秒数内运行结束,超时则程序出错退出. 九、图象函数PHP中有一组图像函数,可以动态生成gif格式的图像数据流并输出到服务器.为了这组函数能够工作,系统中必须有gd库的支持.如果是在Unix下,应该在编译PHP之前先取得gd的源码并编译之,生成
18、libgd.a和一些.h文件,分别拷到系统的库目录和头文件目录中(例如/usr/lib和/usr/include);如果是在Windows下,PHP3.0的安装程序会安装一个gd.dll文件,在程序中加一句'dl("gd.dll");'即可使用图像函数.主要的图像函数有:(1)ImageCreate(宽度,高度)返回一个图像描述符.(2)ImageCreateFromGif(文件名);返回一个图像描述符.(3)ImageColorAllocate(图像描述符,红,绿,蓝);返回一个颜色描述符.由于Gif图像只能有256色,必须先对它分配调色板,这个语句就是分
19、配一个调色板项.(4)ImageColorTransparent(图像描述符,颜色描述符);指定某颜色为透明色.(5)ImageArc(图像描述符,圆心横坐标,圆心纵坐标,椭圆宽,椭圆高,起始角,终止角,颜色描述符);ImageChar(图像描述符, ImageColorsForIndex返回一个三项的数组,元素分别是红,绿,蓝值.ImageColorsTotal返回总颜色数.(9)ImageFontHeight,ImageFontWidth接收一个字体号作为参数.(10)ImageGif(图像描述符,文件名);如无文件名,则将gif数据流送往浏览
20、器.这时程序一开始应该有一句:Header("Content-type: image/gif") (11)ImageDestroy(图像描述符);图像函数中有一个小Bug(至少在PHP3.0RC和PHP3.0RC3 For Unix的源码中已经发现,现在上的下载文件应该已经更改),就是ImageSetPixel总是在(y,y)处画点,不管x的值是什么,不过这个问题不是很大.十、对数据库的操作PHP的数据库功能应该说是它最有用的功能之一.它的特点就是内置了对很多数据库的支持,而不再需要重新扩充.Perl和Tcl也都是常用的跨平台语言,都有很强的字符能力,前者字符能力更强一些,
21、性能更高一些;而后者有GUI能力.它们都可以扩充以支持数据库,但这时如果仍旧希望应用程序有跨平台能力,则需要在各种平台上各自扩充,比如在Unix平台上对Perl扩充DBI包,在Windows 95/NT下对Perl扩充Win32:ODBC包,有时候这是很麻烦的.而PHP由于内置了数据库支持,就为编程人员省去了这些麻烦.PHP3.0支持以下数据库:Adabas_D,dBase,dbm,filePro,mSQL,MySQL,Sybase,Oracle,PostgreSQL,Solid另外,支持Windows下的ODBC接口. (二)dbmdbm是Unix下的一种非关系数据库(至少我感觉是这样),它实际上是文件形式的哈希表,每一对名字/值项称为一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车辆安全知识培训材料课件
- 管道检验结果处理工艺考核试卷及答案
- 米粒熟成处理工艺考核试卷及答案
- 2025年黑龙江省伊春市公务员省考公共基础知识模拟题(附答案)
- 熔炉炉体热传导性能改进工艺考核试卷及答案
- 眼镜学考试题库及答案
- 塑绳编织耐水浸泡工艺研究考核试卷及答案
- 2025年焊工笔试考试试题及答案
- 2025年海南省政府采购评审专家考试真题库(带答案)
- 烟草设备故障排除工艺考核试卷及答案
- 肩关节运动康复新策略-洞察及研究
- 神奇的艾草教学课件
- 《耳念珠菌医院感染预防与控制专家共识(2025)》解读 2
- 环保废气基础知识培训课件
- 2026届广州市高三年级阶段训练(8月市调研摸底) 语地理试卷(含答案)
- 网络安全测验题目及答案
- 2025至2030中国密封圈行业项目调研及市场前景预测评估报告
- 2025年幼儿园指南考试题目及答案
- 医美行业监管趋势下2025年美容整形手术的市场需求与消费者行为分析报告
- 2025年中煤财务岗笔试题及答案
- 中西医结合医师岗位面试问题及答案
评论
0/150
提交评论