PHP 常用函数
文章目录
时间函数
-
常用代码
1 2 3 4 5 6 7 8 9 10 11
date_default_timezone_set('PRC'); //默认时区 echo "今天:",date("Y-m-d",time()),"<hr>"; echo "昨天:",date("Y-m-d",strtotime("-1 day")), "<hr>"; echo "明天:",date("Y-m-d",strtotime("+1 day")), "<hr>"; echo "一周后:",date("Y-m-d",strtotime("+1 week")), "<hr>"; echo "一周零两天四小时两秒后:",date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds")), "<hr>"; echo "下个星期四:",date("Y-m-d",strtotime("next Thursday")), "<hr>"; echo "上个周一:".date("Y-m-d",strtotime("last Monday"))."<hr>"; echo "一个月前:".date("Y-m-d",strtotime("last month"))."<hr>"; echo "一个月后:".date("Y-m-d",strtotime("+1 month"))."<hr>"; echo "十年后:".date("Y-m-d",strtotime("+10 year"))."<hr>";
-
一天前:换算成小时为单位,当前时间减去24h后,为一天前
-
获取毫秒级时间戳的方式
1 2 3 4 5 6 7 8
/** * 获取毫秒级时间戳 * @return string */ function getMicroTime(): string { return bcmul(microtime(true), 1000); }
文件上传下载
- readfile() // 直接输出输出文件流 或 强制下载
- header() // 输出文件 或 定义文件类型
调试函数
-
debug_backtrace([ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT [, int $limit = 0 ]]): array // 产生一条 PHP 的回溯跟踪(backtrace)
有可能从 debug_backtrace() 返回的元素
名字 类型 说明 function string 当前的函数名,参见: FUNCTION。 line integer 当前的行号。参见: LINE。 file string 当前的文件名。参见: FILE。 class string 当前 class 的名称。参见 CLASS object object 当前的 object。 type string 当前调用的类型。如果是一个方法,会返回 “->"。如果是一个静态方法,会返回 “::"。 如果是一个函数调用,则返回空。 args array 如果在一个函数里,这会列出函数的参数。 如果是在一个被包含的文件里,会列出包含的文件名。
大小写比较
|
|
array_map vs array_walk
|
|
不同点
- array_map 支持对多个数组进行遍历处理,array_walk 仅支持对一个数组进行处理
- array_map 返回处理后的结果数组,array_walk 返回操作是否成功
其他函数
-
密码&哈希函数
1 2 3 4 5
password_hash(string $password , int $algo [, array $options ]): string // 使用足够强度的单向散列算法创建密码的散列(hash) password_verify(string $password , string $hash): bool // 验证密码是否和散列值匹配 hash_hmac(string $algo , string $data , string $key [, bool $raw_output = FALSE ]): string // 使用 HMAC 方法生成带有密钥的哈希值 hash_equals(string $known_string , string $user_string): bool // 可防止时序攻击的字符串比较,应用场景:密码、验证码等字段的校验。(比较两个字符串,无论它们是否相等,本函数的时间消耗是恒定的)
-
http_build_query — 生成 URL-encode 之后的请求字符串 string http_build_query ( mixed $query_data [, string $numeric_prefix [, string$arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )
-
parse_str — 将字符串解析成多个变量 void parse_str ( string $str [, array &$arr ] )
-
socket、curl、phprpc
-
mixed microtime ([ bool $get_as_float ] ) //返回当前 Unix 时间戳和微秒数,如果给出了 get_as_float 参数并且其值等价于 TRUE,microtime() 将返回一个浮点数。可以对脚本的运行计时
-
pathinfo(path,options), pathinfo() 函数以数组的形式返回文件路径的信息。
options: 可选。规定要返回的数组元素。默认是 all。 可能的值: PATHINFO_DIRNAME - 只返回 dirname PATHINFO_BASENAME - 只返回 basename PATHINFO_EXTENSION - 只返回 extension
-
getimagesize — 取得图像大小 ,返回一个具有四个单元的数组。索引 0 包含图像宽度的像素值,索引 1 包含图像高度的像素值。索引 2 是图像类型的记:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。这些标记与 PHP 4.3.0 新加的 IMAGETYPE 常量对应。索引 3 是文本字符串,内容为“height=“yyy” width=“xxx””,可直接用于 IMG 标记。
自 PHP 4.3.0 起,getimagesize() 还会返回额外的参数 mime,符合该图像的 MIME 类型。此信息可以用来在 HTTP Content-type 头信息中发送正确的信息
-
string exec ( string $command [, array &$output [, int &$return_var ]] ),执行 command 参数所指定的linux命令。
1 2 3 4 5 6 7
参数 command 要执行的命令。 output 如果提供了 output 参数, 那么会用命令执行的输出填充此数组(指函数中echo输出的数据), 每行输出填充数组中的一个元素。 数组中的数据不包含行尾的空白字符,例如 \n 字符。 请注意,如果数组中已经包含了部分元素,exec() 函数会在数组末尾追加内容。如果你不想在数组末尾进行追加, 请在传入 exec() 函数之前 对数组使用 unset() 函数进行重置。 return_var 如果同时提供 output 和 return_var 参数, 命令执行后的返回状态会被写入到此变量。
-
过滤器函数[检测是否符合某个规范]
1 2 3 4 5 6 7
filter_has_var — 检测是否存在指定类型的变量 filter_id — 返回与某个特定名称的过滤器相关联的id filter_input_array — 获取一系列外部变量,并且可以通过过滤器处理它们 filter_input — 通过名称获取特定的外部变量,并且可以通过过滤器处理它 filter_list — 返回所支持的过滤器列表 filter_var_array — 获取多个变量并且过滤它们 filter_var — 使用特定的过滤器过滤一个变量
-
ignore_user_abort — 设置客户端断开连接时是否中断脚本的执行
-
ob_start — 打开输出控制缓冲: 此函数将打开输出缓冲。当输出缓冲激活后,脚本将不会输出内容(除http标头外),相反需要输出的内容被存储在内部缓冲区中。
-
差集函数
1 2 3 4 5
// 对比 array1 和其他一个或者多个数组,返回在 array1 中但是不在其他 array 里的值。 array_diff ( array $array1 , array $array2 [, array $... ] ) : array // 使用回调函数比较数据,计算数组的不同之处。和 array_diff() 不同的是,前者使用内置函数进行数据比较。 array_udiff ( array $array1 , array $array2 [, array $... ], callable $value_compare_func ) : array