时间函数

  1. 常用代码

     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>";
    
  2. 一天前:换算成小时为单位,当前时间减去24h后,为一天前

  3. 获取毫秒级时间戳的方式

    1
    2
    3
    4
    5
    6
    7
    8
    
    /**
     * 获取毫秒级时间戳
     * @return string
     */
    function getMicroTime(): string
    {
        return bcmul(microtime(true), 1000);
    }
    

文件上传下载

  1. readfile() // 直接输出输出文件流 或 强制下载
  2. header() // 输出文件 或 定义文件类型

调试函数

  1. 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 如果在一个函数里,这会列出函数的参数。 如果是在一个被包含的文件里,会列出包含的文件名。

大小写比较

1
2
3
4
5
// 二进制安全比较字符串(不区分大小写)
strcasecmp ( string $str1 , string $str2 ) : int

// 二进制安全比较字符串(区分大小写)
strcmp ( string $str1 , string $str2 ) : int

array_map vs array_walk

1
2
3
array_map ( callable $callback , array $array , array ...$arrays ) : array

array_walk ( array &$array , callable $callback , mixed $userdata = null ) : bool

不同点

  1. array_map 支持对多个数组进行遍历处理,array_walk 仅支持对一个数组进行处理
  2. array_map 返回处理后的结果数组,array_walk 返回操作是否成功

其他函数

  1. 密码&哈希函数

    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 // 可防止时序攻击的字符串比较,应用场景:密码、验证码等字段的校验。(比较两个字符串,无论它们是否相等,本函数的时间消耗是恒定的)
    
  2. http_build_query — 生成 URL-encode 之后的请求字符串 string http_build_query ( mixed $query_data [, string $numeric_prefix [, string$arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )

  3. parse_str — 将字符串解析成多个变量 void parse_str ( string $str [, array &$arr ] )

  4. socket、curl、phprpc

  5. mixed microtime ([ bool $get_as_float ] ) //返回当前 Unix 时间戳和微秒数,如果给出了 get_as_float 参数并且其值等价于 TRUE,microtime() 将返回一个浮点数。可以对脚本的运行计时

  6. pathinfo(path,options), pathinfo() 函数以数组的形式返回文件路径的信息。

    options: 可选。规定要返回的数组元素。默认是 all。 可能的值: PATHINFO_DIRNAME - 只返回 dirname PATHINFO_BASENAME - 只返回 basename PATHINFO_EXTENSION - 只返回 extension

  7. 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 头信息中发送正确的信息

  8. 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 参数, 命令执行后的返回状态会被写入到此变量。
    
  9. 过滤器函数[检测是否符合某个规范]

    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  使用特定的过滤器过滤一个变量
    
  10. ignore_user_abort — 设置客户端断开连接时是否中断脚本的执行

  11. ob_start — 打开输出控制缓冲: 此函数将打开输出缓冲。当输出缓冲激活后,脚本将不会输出内容(除http标头外),相反需要输出的内容被存储在内部缓冲区中。

  12. 差集函数

    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