采用服务器端嵌入式脚本语言PHP3进行Linux下的网站开发
include语句包含的可以是任意文件,它的内容将出现在最后输出的页面上.如果该文件中有<?...?>括起的部分,则该部分将被PHP解释器解释执行,否则该文件的内容原封不动地送出.
它包含的文件名可以是绝对或相对路径,也可以是一个http或ftp的URL,在后一种情况下,解释器自动取来该URL内容.用这种方法甚至可以触发一个别的机器上的CGI程序.
readfile语句类似于include,但它不执行文件中的PHP程序,只把文件原封不动地送出.这时被包含的文件中的<?...?>将被浏览器理解为注释.
四、字符串的操作
PHP3.0中的字符串操作功能是比较多的,重要的有以下这些:
(1)echo,print,printf,sprintf
前两个函数是输出字符串.字符串中如果有变量名则被替换成其值.
后两个函数类似于C的同名函数.
(2)strchr,strlen,strtok,strrchr,strrev,strstr,strtolower,
strtoupper,substr,ucfirst
这些是常用的字符串操作函数,有些和C中的同名函数意义完全一致.
strrev是把一个字符串翻转.
strtolower和strtoupper的意思应该不用解释了.
ucfirst是把字符串的第一个字符变成大写.
substr是返回字符串的一个子串,用法是:substr(字符串,头,长度).头位置是
从0算起的.如果是负数,则是从尾部向前数的意思.
(3)Chr,Ord
类似于C的同名函数.
(4)explode,implode,join
这些是和数组有关的函数.
explode(字符串,分割符)返回一个将字符串在分割符处分开所产生的数组.
implode(数组,分割符)返回一个将数组各元素之间插上分割符而成的字符串.
join与implode意义相同.
(5)Chop
去掉字符串尾部的空白.
(6)htmlspecialchars
将字符串中的HTML特殊字符换成它们的名字,例如"<"变成"<".
(7)nl2br
在字符串中的每一个回车前面加上"<BR>".
(8)AddSlashes,StripSlashes
分别给字符串中需要加上"/"才能用于数据库查询的字符加上和去掉"/".
(9)parse_str
将"name1=value1&name2=value2&..."类型的字符串分析成一些变量.
例如:
parse_str("a=1&b=2");
生成$a与$b两个变量,值分别为1,2.
如果有两对名字/值的名字部分相同,则后一个的值覆盖前一个的.
如果这两对的名字尾部都有"[]",例如"a[]=1&a[]=2",则生成数组$a,两个元素分别为1,2.
五、表达式的使用
PHP与其它跨平台语言(也许Java不在其列. :))类似,也有正规表达式功能.
PHP3.0的正规表达式功能当然远远比不上Perl,但还是足够用的,主要函数有这么些:
(1)ereg,eregi
这是正规表达式匹配函数,前者是大小写有关匹配,后者则是无关的.
用法:
ereg(正规表达式,字符串,[匹配部分数组名]);
PHP3.0中的正规表达式大体类似于grep中用的.
(2)ereg_replace,eregi_replace
这些是替换函数.
用法:
ereg_replace(正规表达式,替换串,原字符串);
字符串处理函数中有一个strtr,是"翻译"函数,类似于Perl中的tr/.../.../,
用法:
strtr(字符串,"从","到");
例如:
strtr("aaabb","ab","cd")返回"cccdd".
(3)split
与explode函数有些类似,但这次可以在匹配某正规表达式的地方分割字符串.
用法:
split(正规表达式,字符串,[取出前多少项]);
六、文件的操作
PHP3.0中的文件操作函数大体和C的类似,但有一些扩充,特别是除了支持对本机文件的访问外,也支持对HTTP和FTP的URL进行访问,只要把这些URL作为文件名传递给文件操作函数就可以了.
主要的文件操作函数有:
(1)fclose,feof,fgetc,fgets,fopen,fputs,fseek,ftell,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,fileumask,is_dir,
is_executable,is_file,is_link,is_readable,is_writeable
这些是文件信息函数,大多是接受一个文件名作为参数的.
(4)fgetss
用法:
fgetss(文件号,最大长度);
读取文件的一行或直到最大长度(类似于fgets),但去掉所有的
HTML和PHP标记.
(5)file
用法:
file(文件名);
返回一个数组,每一个元素是文件中的一行.
(6)tempnam
用法:
tempnam(目录名,前缀);
返回一个临时文件名.
(7)basename,dirname
取得文件路径中的文件名部分和目录名部分.
在Windows系统下,"/"和"/"都可以作为目录分割符,其他系统下只有"/"可以.
七、目录的操作
PHP中的目录遍历功能本来也很普通,但它却具有一种"面向对象"的形式,所以也提一下:
(1)dir,opendir
用法:
$d = dir("目录名");
$handle = opendir("目录名");
前者返回一个目录对象,后者返回一个目录句柄.
前者返回的对象有handle和path两个属性,第一个就相当于opendir
返回的句柄,第二个就是目录名本身.访问时用$d->handle和$d->path.
(2)read,readdir;rewind,rewinddir;close,closedir;
三组中每组的前一个是目录对象的方法,用"对象->方法()"调用,
后一个是函数,用"函数名(目录句柄)"调用.
read是返回目录中的下一个文件名.
rewind是回到目录的第一个文件名.
c