PHP函数大全

发布时间:2007年08月21日      浏览次数:1913 次
字 符 串 操 作 函 数
  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
同名函数.
(4)explode,implode,join
与数组有关的函数. explode(字符串,分割符)返回一个将字符串在分割符处分开所产生的数组. implode(数组,分割符)返回一个将数组各元素之间插上分割符而成的字符串. join与implode意义相同.
(5)Chop
处理串尾部的空白.
(6)htmlspecialchars
将HTML特殊字符换成它们的名字,例如"<"变成"<".
(7)nl2br
在HTML中的每一个回车前面加上"<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是回到目录的第一个文件名. 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(月,日,年); 返回逻辑真或逻辑假. 如果:
年在1900和32767之间(包括1900与32767);
月在1到12之间;
日在该月的允许日数范围内(考虑了闰年);
则返回逻辑真.
(8)set_time_limit
用法:
set_time_limit(秒数);
规定从该句运行时起程序必须在指定秒数内运行结束, 超时则程序出错退出.
php3的ODBC函数
作者:刘国斌
现在我们将PHP3中常用的ODBC函数列举一下:
odbc_connect (dns,user ,pass);
返回一个连接号,如果连接失败则返回0。
odbc_pconnect (dns,user,pass);
特殊连接,脚本运行结束后,连接并不断开。第二次连接相同的dns时快一些。
odbc_commit (连接号);
中断该连接正在执行的线程,成功返回True,失败返回False。
odbc_autocommit (连接号,0/1);
当参数为1时,设置该连接正在执行的所有线程为自动中断。
odbc_do/odbc_exec (连接号,sql语句);
执行sql语句,返回一个结果号,如果操作失败则返回false。
odbc_prepare (连接号,sql语句);
返回一个结果号,但不执行sql语句。可以以后用odbc_execute(该结果号)来执行。
odbc_fetch_into (结果号,[记录数,] 数组);
把结果的某条记录(省略为下一条记录),放入数组(从[0]开始),不论数组的类型。
返回该记录在结果中的位置,如操作失败则返回false。
odbc_fetch_row (结果号,[记录数]);
移到某条记录(省略为下一条记录),该记录可被odbc_result读写。
odbc_num_fields (结果号);
返回字段总数。
odbc_num_rows (结果号);
返回记录总数。
odbc_result (结果号,字段号/字段名);
返回结果中当前记录中该字段号/字段名的字段。
odbc_result_all (结果号,sql语句);
返回所有查询结果,并以html表格输出。
odbc_field_name/odbc_field_type/odbc_field_len (结果号,字段号);
返回该字段的字段名/数据类型/数据长度。
odbc_lonreaglen (结果号,长度);
设置返回结果的字段长度,如长度为0则全部返回。
odbc_free_result (结果号);
释放内存,当不需要内存中的查询结果时。
odbc_cursor (结果号);
返回一个指针,指向该结果。
odbc_rollback
odbc_close (连接号);
关闭该连接。
odbc_close_all();
关闭所有连接。
一个用PHP3来操纵ODBC数据库的具体例子。
db为odbc的dsn名,tab1为表名
<title>first php3 script</title>
</head>
<body>
<?
echo "ODBC Samples"."<BR>";
$Connection_ID=odbc_connect("db","","");
$Result_ID=odbc_exec($Connection_ID,"Select * from tab1");
$i=1;
$fldCount=odbc_num_fields($Result_ID);
echo "<table border=1>";
while (odbc_fetch_row($Result_ID,$i)<>0)
{
 echo "<tr>";
 for ($j=1;$j<=$fldCount;$j++)
 {
  echo "<td>".$i."</td>";
  echo "<td>".odbc_result($Result_ID,$j)."</td>";
 }
 echo "</tr>";
 $i=$i+1;
}
echo "</table>";
?>
</body>
</html>
其实查询过程还可以简化为:
<?
$Connection_ID=odbc_connect("db","","");
$Result_ID=odbc_exec($Connection_ID,"Select * from tab1");
$fldCount=odbc_num_fields($Result_ID);
odbc_result_all($Result_ID);
?>


图象函数
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返回一个三项的数组,元素分别是红,绿,蓝值.
ImageColorsTotal返回总颜色数.
 
(9)ImageFontHeight,ImageFontWidth
接收一个字体号作为参数.
 
(10)ImageGif(图像描述符,[文件名]);
如无文件名,则将gif数据流送往浏览器.这时程序一开始应该有一句: Header("Content-type: image/gif")
 
(11)ImageDestroy(图像描述符);
图像函数中有一个小Bug(至少在PHP3.0RC和PHP3.0RC3 For Unix的源码中已经发现,现www.php.netmmkey.com上的下载文件应该已经更改),就是ImageSetPixel总是在(y,y)处画点,不管x的值是什么,不过这个问题不是很大.
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!