您当前的位置:首页 > 互联网教程

PHP的常用系统函数有哪些

发布时间:2025-05-21 16:48:53    发布人:远客网络

PHP的常用系统函数有哪些

一、PHP的常用系统函数有哪些

PHP自带了大量的系统函数,使用这些函数可以完成大部分的任务。常用的有数学运算函数和日期时间函数。

数学运算是程序中最常执行的功能之一,PHP提供了很多系统函数实现运算功能,无须安装、编译和配置便可以直接使用。下表列出了常用的数学函数:

注意:这些数学函数仅能处理计算机中integer和float范围的值。

function CreatePassword($length=6)//生成密码函数,默认6位

$dictionary=”abcdefghijklmnopqrstuvwxyz0123456789”;//密码字典

$maxChar=strlen($dictionary);//获取字典长度

for($i=0;$i<$length;$i++)//随机生成每一位

$password.=$dictionary[rand(0,$maxChar)];//产生随机数,再从字典取字母

PHP提供了丰富的日期和时间方面运算的函数。

时间戳(Timestamp)是源于UNIX系统的时间表示方法,是指从1970年1月1日(00:00:00GMT)起到现在所经过的秒数,因此也称为UNIX时间戳。

在PHP中使用时间戳的最简单方式就是调用time()函数,time()函数可以根据当前时间返回一个时间戳的表示法。示例:

echo“当前时间戳为:”.time();

date()函数用于格式化一个本地日期和时间。语法格式为:

string date(string$format [, int$timestamp])

返回将整数$timestamp按照$format给定格式而产生的字符串。其中,$timestamp参数是可选的,如果没有给出时间戳,则使用本地当前时间,即time()。

下表列出了$format格式化字符串参数的说明:

月份中的第几天,有前导零的2位数字

星期中的第几天,文本表示,3个字母

L的小写字母,表示星期几的完整文本格式

1(表示星期一)到7(表示星期天)

每月天数后面的英文后缀,2个字符

0(表示星期天)到6(表示星期六)

年份中的第几周,每周从星期一开始

月份,完整的文本格式,例如January

例如:UTC,GMT,Atlantic/Azores

例如:Thu, 21 Dec 2011 06:07:08+0200

从January 1 1970 00:00:00开始至今的秒数

$today=date(“m/d/y”);//结果为:07/19/12

$today=date(“F j, Y, g:i a”);//结果为:July 19, 2012, 9:07 am

$today=date(“Y年n月j日”);//结果为:2012年7月19日

$today=date(“Y-m-d H:i:s”);//结果为:2012-07-19 09:07:32

$today=date(“D M j G:i:s T Y”);//结果为:Thu Jul 19 9:07:32 CST 2012

$today=date(‘i t i s t h e jS d a y’);//结果为:07 31 07 32 31 09 Asia/Shanghai 19th 19 am 12

$today=date(‘\i\t\i\s\t\h\e jS\d\a\y’);//结果为:it is the 19th day

$today=date(‘H:m:s\m\i\s\\m\o\h’);//结果为:09:07:32 m is month

gmdate()函数实现与date()函数相同的功能,不同的是gmdate()函数返回的时间是格林威治标准时间(GMT)。语法格式为:

string gmdate(string$format [, int$timestamp])

getdate()函数用于获取指定的日期和时间信息。语法格式为:

array getdate([int$timestamp])

如果没有指定时间戳$timestamp,则使用系统当前的本地时间。getdate()函数返回一个数组,数组中的每个元素代表日期和时间中的特定组成部分。下表列出了返回数组中键名的说明:

0(表示星期天)到6(表示星期六)

和time()的返回值类似,是一个时间戳

printf(“今天是%s年%s月%s日星期%s\n”,$today[“year”],$today[“mon”],$today[“mday”],$today[“wday”]);

printf(“现在时间是%s时%s分%s秒”,$today[“hours”],$today[“minutes”],$today[“seconds”]);

checkdate()函数用于检查一个日期是否有效,有效则返回true,否则返回false。语法格式为:

bool checkdate(int$month, int$day, int$year)

当满足如下条件时,checkdate()函数将认为是一个有效的日期:

·$day的值在给定的$month所应该具有的天数范围之内,包括闰年情况

echo checkdate(2,29,2012)?”有效”:”无效”;

time()函数使用方法非常简单,没有参数调用后返回当前日期和时间的UNIX时间戳。语法格式为:

$next50day=time()+(50*24*60*60);//计算50天以后的日期

mktime()函数的作用与time()函数相同,都可以返回一个时间戳表示的时间。不同的是,在mktime()函数中可以指定具体的日期和时间。语法格式为:

int mktime([int$hour],[int$minute],[int$second],[int$month], [int$day],[int$year])

上述参数列表从右向左顺序省略,任何省略的参数会被设置为本地日期和时间的当前值。如果指定的时间无法表示,则返回false。mktime()函数在做日期计算和验证方面很有用。示例:

$day1=mktime(0,0,0,12,25,2012);

$day2=mktime(0,0,0,10,1,2012);

$days=($day1-$day2)/(24*60*60);//根据时间戳计算出相差的天数

strtotime()函数用于将可阅读的英文日期/时间字符串转换成UNIX时间戳。语法格式:

int strtotime(string$time[, int$now])

其中,$time参数表示要被转换的字符串,$now表示计算返回值的时间戳。如果没有提供$now参数,将使用系统的当前时间。strtotime()函数成功时返回时间戳,否则返回false。

microtime()函数调用后将返回当前UNIX时间戳和微秒数。语法格式为:

mixed microtime([bool$get_as_float])

这里的可选参数$get_as_float是一个布尔值,如果为true将返回一个浮点数。默认不带参数时将以“msec sec”格式返回一个字符串,其中msec是微秒部分,sec是UNIX时间戳。

二、PHP处理数组常用的几个函数

1、array_values($arr);获得数组的值

2、array_keys($arr);获得数组的键名

3、array_flip($arr);数组中的值与键名互换(如果有重复前面的会被后面的覆盖)

4、in_array("apple",$arr);在数组中检索apple

5、array_search("apple",$arr);在数组中检索apple,如果存在返回键名

6、array_key_exists("apple",$arr);检索给定的键名是否存在数组中

7、isset($arr[apple]):检索给定的键名是否存在数组中

8、current($arr);返回数组中的当前单元

9、pos($arr);返回数组中的当前单元

10、key($arr);返回数组中当前单元的键名

11、prev($arr);将数组中的内部指针倒回一位

12、next($arr);将数组中的内部指针向前移动一位

13、end($arr);将数组中的内部指针指向最后一个单元

14、reset($arr;将数组中的内部指针指向第一个单元

15、each($arr);将返回数组当前元素的一个键名/值的构造数组,并使数组指针向前移动一位

16、list($key,$value)=each($arr);获得数组当前元素的键名和值

17、extract($arr);用于把数组中的元素转换成变量导入到当前文件中,键名当作变量名,值作为变量值

18、注:(第二个参数很重要,可以看手册使用)使用方法 echo$a;

19、compact(var1,var2,var3);用给定的变量名创建一个数组

20、array_slice($arr,0,3);可以将数组中的一段取出,此函数忽略键名

21、array_splice($arr,0,3,array("black","maroon"));可以将数组中的一段取出,与上个函数不同在于返回的序列从原数组中删除

22、array_chunk($arr,3,TRUE);可以将一个数组分割成多个,TRUE为保留原数组的键名

23、array_pad($arr,5,'x');将一个数组填补到制定长度

24、array_push($arr,"apple","pear");将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素的个数

25、array_pop($arr);将数组栈的最后一个元素弹出(出栈)

26、array_shift($arr);数组中的第一个元素移出并作为结果返回(数组长度减1,其他元素向前移动一位,数字键名改为从零技术,文字键名不变)

27、array_unshift($arr,"a",array(1,2));在数组的开头插入一个或多个元素

28、array_walk($arr,'function','words');使用用户函数对数组中的每个成员进行处理(第三个参数传递给回调函数function)

29、array_mpa("function",$arr1,$arr2);可以处理多个数组(当使用两个或更多数组时,他们的长度应该相同)

30、array_filter($arr,"function");使用回调函数过滤数组中的每个元素,如果回调函数为TRUE,数组的当前元素会被包含在返回的结果数组中,数组的键名保留不变

31、array_reduce($arr,"function","*");转化为单值函数(*为数组的第一个值)

32、sort($arr);由小到大的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序

33、rsort($arr);由大到小的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序

34、usort($arr,"function");使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)忽略键名的数组排序

35、asort($arr);由小到大的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序

36、arsort($arr);由大到小的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序

37、uasort($arr,"function");使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)保留键名的数组排序

38、uksort($arr,"function");使用用户自定义的比较函数对数组中的键名进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)

39、natsort($arr);自然排序(忽略键名)

40、natcasesort($arr);自然排序(忽略大小写,忽略键名)

41、array_sum($arr);对数组内部的所有元素做求和运算

42、array_merge($arr1,$arr2);合并两个或多个数组(相同的字符串键名,后面的覆盖前面的,相同的数字键名,后面的不会做覆盖操作,而是附加到后面)

43、“+”$arr1+$arr2;对于相同的键名只保留后一个

44、array_merge_recursive($arr1,$arr2);递归合并操作,如果数组中有相同的字符串键名,这些值将被合并到一个数组中去。如果一个值本身是一个数组,将按照相应的键名把它合并为另一个数组。当数组具有相同的数组键名时,后一个值将不会覆盖原来的值,而是附加到后面

45、array_diff($arr1,$arr2);返回差集结果数组

46、array_diff_assoc($arr1,$arr2,$arr3);返回差集结果数组,键名也做比较

47、array_intersect($arr1,$arr2);返回交集结果数组

48、array_intersect_assoc($arr1,$arr2);返回交集结果数组,键名也做比较

49、range(0,12);创建一个包含指定范围单元的数组

50、array_unique($arr);移除数组中重复的值,新的数组中会保留原始的键名

51、array_reverse($arr,TRUE);返回一个单元顺序与原数组相反的数组,如果第二个参数为TRUE保留原来的键名

52、//srand((float)microtime()*10000000);随机种子触发器

53、array_rand($arr,2);从数组中随机取出一个或多个元素

54、shuffle($arr);将数组的顺序打乱

55、求课吧有很多关于PHP编程方面的教程

三、该学习哪些PHP函数PHP常用函数

1、这些函数根本没有重要不重要之分,

2、用到了就会觉得它重要,用不到自然就无所谓,

3、其实函数什么的就是基本功,哪怕记不住,也必须知道有这么个函数,用的时候必须能查到。

4、常见的函数根本就不需要去记,多用几次自然就记住了。

5、除了这些函数外,还有一些经典的常用代码片段也是需要记住的。