用法:
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系统下,"http://www.lunwentianxia.com/"和"\"都可以作为目录分割符,其他系统下只有"http://www.lunwentianxia.com/"可以.
七、目录的操作
PHP中的目录遍历功能本来也很普通,但它却具有一种"面向对象"的形式,所以也提一下:
(1)dir,opendir
用法:
$d = dir("目录名");
$handle = opendir("目录名");
前者返回一个目录对象,后者返回一个目录句柄.
前者返回的对象有handle和path两个属性,第一个就相当于opendir
返回的句柄,第二个就是目录名本身.访问时用$d->handle和$d->path.
(2)read,readdir;rewind,rewinddir;close,closedir;
三组中每组的前一个是目录对象的方法,用"对象->方法()"调用,
后一个是函数,用"函数名(目录句柄)"调用.
read是返回目录中的下一个文件名.
rewind是回到目录的第一个文件名.
close是关闭目录,不再遍历.
(3)chdir
转换PHP的工作目录.
八、时间函数
PHP中的时间函数有这么些:
(1)date
用法:
date(格式,[时间]);
如果没有时间参数,则使用当前时间.
格式是一个字符串,其中以下字符有特殊意义:
U 替换成从一个起始时间(好象是1970年1月1日)以来的秒数
Y 替换成4位的年号.
y 替换成2位的年号.
F 替换成月份的英文全称.
M 替换成月份的英文简称.
m 替换成月份数.
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(时间)
返回一个哈希表,各下标是:
"seconds" -- 秒数
"minutes" -- 分数
"hours" -- 小时数
"mday" -- 日数
"mon" -- 月份数
"year" -- 年号
"yday" -- 1月1日以来的天数
"weekday" -- 星期几,英文全称
"month" -- 月份,英文全名
(3)gmdate
与date类似,但先将时间转换成格林威治标准时.
(4)mktime
用法:
mktime(小时数,分数,秒数,月,日,年);
返回一个时间值,可用于其他函数.
(5)time
用法:
time();
返回1970年1月1日零点以来的秒数.
(6)microtime
用法:
microtime();
返回一个字符串,用空格分成两部分,后一部分相当于time()
的返回值,前一部分是微秒数.
(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的源码并编译之,生成libgd.a和一些.h文件,分别拷到系统的库目录和头文件目录中(例如/usr/lib和/usr/include);如果是在Windows下,PHP3.0的安装程序会安装一个gd.dll文件,在程序中加一句'dl("gd.dll");'即可使用图像函数.
主要的图像函数有:
(1)ImageCreate(宽度,高度)
返回一个图像描述符.
(2)ImageCreateFromGif(文件名);
返回一个图像描述符.
(3)ImageColorAllocate(图像描述符,红,绿,蓝);
返回一个颜色描述符.由于Gif图像只能有256色,必须先对它分配调色板,
这个语句就是分配一个调色板项.
(4)ImageColorTransparent(图像描述符,颜色描述符);
指定某颜色为透明色.
(5)ImageArc(图像描述符,圆心横坐标,圆心纵坐标,椭圆宽,椭圆高,起始
角,终止角,颜色描述符);
ImageChar(图像描述符,字体,x,y,字符,颜色描述符);
ImageCharUp(图像描述符,字体,x,y,字符,颜色描述符);
ImageCopyResized(目标图像描述符,源图像描述符,目标x,目标y,源x,源y,
目标宽,目标高,源宽,源高);
ImageDashedLine(图像描述符,x1,y1,x2,y2,颜色描述符);
ImageFill(图像描述符,起始点x,起始点y,颜色描述符);
ImageFilledPolygon(图像描述符,各顶点数组,顶点数,颜色描述符);
ImageFilledRectangle(图像描述符,x1,y1,x2,y2,颜色描述符);
ImageFillToBorder(图像描述符,起始点x,起始点y,边界色,填充色);
ImageLine(图像描述符,x1,y1,x2,y2,颜色描述符);
ImagePolygon(图像描述符,各顶点数组,顶点数,颜色描述符);
ImageRectangle(图像描述符,x1,y1,x2,y2,颜色描述符);
ImageSetPixel(图像描述符,x,y,颜色描述符);
ImageString(图像描述符,字体,x,y,字符串,颜色描述符);
ImageStringUp(图像描述符,字体,x,y,字符串,颜色描述符);
这些都是画图函数,需要略做解释的就是多边形的顶点数组内依次存放着
第一点x,第一点y,第二点x,第二点y,...
(6)ImageLoadFont(文件名);
文件应该是一个位图字体文件,返回一个字体号.系统缺省带有1-5字体号,
可以直接使用.
(7)ImageSX,ImageSY
分别得到一个图像的宽度和高度,接收一个图像描述符参数.
(8)ImageColorAt(图像描述符,x,y);
ImageColorClosest(图像描述符,红,绿,蓝);
ImageColorExact(图像描述符,红,绿,蓝);
ImageColorSet(图像描述符,颜色描述符,红,绿,蓝);
ImageColorsForIndex(图像描述符,颜色描述符);
ImageColorsTotal(图像描述符);
前三个返回一个颜色描述符.ImageColorExact如果找不到匹配则返回-1.
ImageColorsForIndex返回一个三项的数组,元素分