209 个常用函数 · 13 类分组 · 描述与语法 · 点击复制
返回 ico5.net 在线工具箱 您还可以使用 Eclipse快捷键大全 3ds Max快捷键大全 IDEA快捷键大全 PS快捷键大全| 函数名称 | 描述 | 语法 (Syntax) |
|---|---|---|
| strlen | 获取字符串长度(字节数) | strlen($string) |
| substr | 返回字符串的子串 | substr($string, $start, $length) |
| strpos | 查找字符串首次出现的位置(区分大小写),未找到返回 false | strpos($haystack, $needle, $offset) |
| stripos | 同 strpos,但不区分大小写 | stripos($haystack, $needle, $offset) |
| strrpos | 查找字符串最后一次出现的位置 | strrpos($haystack, $needle, $offset) |
| str_replace | 子串替换(区分大小写) | str_replace($search, $replace, $subject, &$count) |
| str_ireplace | 不区分大小写的字符串替换 | str_ireplace($search, $replace, $subject, &$count) |
| strtolower | 将字符串转为小写 | strtolower($string) |
| strtoupper | 将字符串转为大写 | strtoupper($string) |
| ucfirst | 将字符串首字母转为大写 | ucfirst($string) |
| ucwords | 将每个单词的首字母转为大写 | ucwords($string) |
| trim | 去除字符串首尾的空白或指定字符 | trim($string, $characters) |
| ltrim | 去除字符串左侧的空白或指定字符 | ltrim($string, $characters) |
| rtrim | 去除字符串右侧的空白或指定字符 | rtrim($string, $characters) |
| strrev | 反转字符串 | strrev($string) |
| str_split | 将字符串按长度分割为数组 | str_split($string, $length) |
| str_repeat | 重复字符串指定次数 | str_repeat($string, $multiplier) |
| str_pad | 将字符串填充到指定长度 | str_pad($string, $length, $pad_string, $pad_type) |
| strcmp | 二进制安全的字符串比较,返回整数 | strcmp($str1, $str2) |
| strcasecmp | 不区分大小写的字符串比较 | strcasecmp($str1, $str2) |
| explode | 按分隔符将字符串拆分为数组 | explode($separator, $string, $limit) |
| implode | 将数组元素用分隔符拼接成字符串 | implode($glue, $array) |
| nl2br | 在字符串的换行符前插入 <br> | nl2br($string, $use_xhtml) |
| htmlspecialchars | 将特殊字符转换为 HTML 实体(防 XSS) | htmlspecialchars($string, $flags, $encoding) |
| strip_tags | 去除字符串中的 HTML 和 PHP 标签 | strip_tags($string, $allowed) |
| number_format | 格式化数字为带千分位的字符串 | number_format($num, $decimals, $dec_point, $thousands_sep) |
| 函数名称 | 描述 | 语法 (Syntax) |
|---|---|---|
| count | 计算数组中的元素个数 | count($array, $mode) |
| array_push | 将一个或多个元素压入数组末尾 | array_push(&$array, ...$values) |
| array_pop | 弹出并返回数组最后一个元素 | array_pop(&$array) |
| array_shift | 移除并返回数组首个元素,索引重排 | array_shift(&$array) |
| array_unshift | 在数组开头插入一个或多个元素 | array_unshift(&$array, ...$values) |
| array_merge | 合并一个或多个数组 | array_merge(...$arrays) |
| array_keys | 返回数组的全部键名 | array_keys($array, $search, $strict) |
| array_values | 返回数组的全部值(数字索引重排) | array_values($array) |
| array_key_exists | 检查数组里是否存在指定的键名 | array_key_exists($key, $array) |
| in_array | 检查数组中是否存在某个值 | in_array($needle, $haystack, $strict) |
| array_search | 在数组中搜索值并返回对应的键名 | array_search($needle, $haystack, $strict) |
| array_map | 对数组每个元素应用回调函数 | array_map($callback, ...$arrays) |
| array_filter | 用回调函数过滤数组中的元素 | array_filter($array, $callback) |
| array_slice | 截取数组中的一段 | array_slice($array, $offset, $length, $preserve_keys) |
| array_splice | 移除并替换数组中的一段元素 | array_splice(&$array, $offset, $length, $replacement) |
| array_reverse | 返回顺序反转后的数组 | array_reverse($array, $preserve_keys) |
| array_unique | 移除数组中的重复值 | array_unique($array, $flags) |
| array_flip | 交换数组中的键与值 | array_flip($array) |
| sort | 对数组升序排序(重排数字索引) | sort(&$array, $flags) |
| asort | 升序排序并保持索引关联 | asort(&$array, $flags) |
| ksort | 按键名升序排序 | ksort(&$array, $flags) |
| array_sum | 计算数组中所有值的和 | array_sum($array) |
| array_column | 返回数组中指定的一列 | array_column($array, $column, $index_key) |
| array_diff | 计算数组的差集 | array_diff($array, ...$arrays) |
| array_intersect | 计算数组的交集 | array_intersect($array, ...$arrays) |
| array_combine | 用两个数组分别作键和值创建新数组 | array_combine($keys, $values) |
| array_chunk | 将数组分割成多个小数组 | array_chunk($array, $length, $preserve_keys) |
| array_rand | 从数组中随机返回一个或多个键名 | array_rand($array, $num) |
| range | 建立一个包含指定范围元素的数组 | range($start, $end, $step) |
| 函数名称 | 描述 | 语法 (Syntax) |
|---|---|---|
| abs | 返回数值的绝对值 | abs($number) |
| round | 对浮点数进行四舍五入 | round($val, $precision, $mode) |
| ceil | 向上取整,返回不小于值的最小整数 | ceil($value) |
| floor | 向下取整,返回不大于值的最大整数 | floor($value) |
| max | 返回最大值 | max(...$values) |
| min | 返回最小值 | min(...$values) |
| sqrt | 返回平方根 | sqrt($arg) |
| pow | 返回 base 的 exp 次方 | pow($base, $exp) |
| rand | 生成指定范围内的随机整数 | rand($min, $max) |
| mt_rand | 生成更好的随机整数(更快更随机) | mt_rand($min, $max) |
| fmod | 返回浮点数相除的余数 | fmod($x, $y) |
| intval | 获取变量的整数值 | intval($var, $base) |
| floatval | 获取变量的浮点值 | floatval($var) |
| is_nan | 判断是否为非数值(NAN) | is_nan($val) |
| is_finite | 判断是否为有限值 | is_finite($val) |
| pi | 返回圆周率 π | pi() |
| deg2rad | 将角度转换为弧度 | deg2rad($deg) |
| rad2deg | 将弧度转换为角度 | rad2deg($rad) |
| base_convert | 在任意进制之间转换数字 | base_convert($num, $frombase, $tobase) |
| decbin | 将十进制数转换为二进制字符串 | decbin($number) |
| bindec | 将二进制字符串转换为十进制数 | bindec($binary) |
| hexdec | 将十六进制字符串转换为十进制数 | hexdec($hex) |
| dechex | 将十进制数转换为十六进制字符串 | dechex($number) |
| log | 计算自然对数,可指定底数 | log($arg, $base) |
| exp | 计算 e 的 arg 次方 | exp($arg) |
| 函数名称 | 描述 | 语法 (Syntax) |
|---|---|---|
| time | 返回当前的 Unix 时间戳(秒) | time() |
| date | 格式化本地日期/时间 | date($format, $timestamp) |
| strtotime | 将英文文本日期时间解析为 Unix 时间戳 | strtotime($datetime, $baseTimestamp) |
| mktime | 取得给定日期的 Unix 时间戳 | mktime($hour, $min, $sec, $mon, $day, $year) |
| getdate | 返回包含日期时间信息的关联数组 | getdate($timestamp) |
| microtime | 返回当前 Unix 时间戳及微秒数 | microtime($get_as_float) |
| checkdate | 验证日期的合法性 | checkdate($month, $day, $year) |
| date_default_timezone_set | 设定脚本中所有日期时间函数的默认时区 | date_default_timezone_set($timezone) |
| date_default_timezone_get | 获取当前默认时区 | date_default_timezone_get() |
| idate | 将本地时间/日期格式化为整数 | idate($format, $timestamp) |
| localtime | 取得本地时间,可返回关联数组 | localtime($timestamp, $assoc) |
| date_create | 创建 DateTime 对象 | date_create($datetime, $timezone) |
| date_format | 格式化 DateTime 对象为字符串 | date_format($object, $format) |
| date_add | 给 DateTime 对象增加一段时间 | date_add($object, $interval) |
| date_sub | 从 DateTime 对象减去一段时间 | date_sub($object, $interval) |
| date_diff | 返回两个日期之间的差(DateInterval) | date_diff($d1, $d2, $absolute) |
| 函数名称 | 描述 | 语法 (Syntax) |
|---|---|---|
| file_get_contents | 将整个文件读入一个字符串 | file_get_contents($path, $flags, $context) |
| file_put_contents | 将数据写入文件 | file_put_contents($path, $data, $flags) |
| fopen | 打开文件或 URL 并返回资源句柄 | fopen($filename, $mode) |
| fread | 读取文件(最多指定长度字节) | fread($handle, $length) |
| fwrite | 写入文件(二进制安全) | fwrite($handle, $string, $length) |
| fclose | 关闭已打开的文件句柄 | fclose($handle) |
| fgets | 从文件指针读取一行 | fgets($handle, $length) |
| file | 将文件读入数组(每行为一个元素) | file($path, $flags) |
| file_exists | 检查文件或目录是否存在 | file_exists($path) |
| is_file | 判断给定路径是否为普通文件 | is_file($path) |
| is_dir | 判断给定路径是否为目录 | is_dir($path) |
| is_readable | 判断文件是否可读 | is_readable($path) |
| is_writable | 判断文件是否可写 | is_writable($path) |
| unlink | 删除文件 | unlink($filename) |
| copy | 复制文件 | copy($source, $dest, $context) |
| rename | 重命名或移动文件/目录 | rename($oldname, $newname) |
| mkdir | 创建目录 | mkdir($path, $mode, $recursive) |
| rmdir | 删除空目录 | rmdir($path) |
| scandir | 列出指定目录中的文件和目录 | scandir($directory, $sorting) |
| glob | 查找匹配指定模式的文件路径 | glob($pattern, $flags) |
| filesize | 取得文件大小(字节) | filesize($path) |
| filemtime | 取得文件内容最后修改时间 | filemtime($path) |
| basename | 返回路径中的文件名部分 | basename($path, $suffix) |
| dirname | 返回路径中的目录部分 | dirname($path, $levels) |
| pathinfo | 返回文件路径的信息(目录/文件名/扩展名等) | pathinfo($path, $options) |
| realpath | 返回规范化的绝对路径名 | realpath($path) |
| 函数名称 | 描述 | 语法 (Syntax) |
|---|---|---|
| isset | 检测变量是否已设置且非 null(语言结构) | isset($var, ...$vars) |
| empty | 判断变量是否为空(语言结构) | empty($var) |
| unset | 释放指定的变量(语言结构) | unset($var, ...$vars) |
| var_dump | 输出变量的类型与值(调试用) | var_dump(...$vars) |
| print_r | 以易读形式打印变量信息 | print_r($value, $return) |
| gettype | 获取变量的类型 | gettype($var) |
| settype | 将变量强制转换为指定类型 | settype(&$var, $type) |
| is_array | 判断是否为数组 | is_array($var) |
| is_string | 判断是否为字符串 | is_string($var) |
| is_int | 判断是否为整数 | is_int($var) |
| is_float | 判断是否为浮点数 | is_float($var) |
| is_bool | 判断是否为布尔值 | is_bool($var) |
| is_object | 判断是否为对象 | is_object($var) |
| is_null | 判断是否为 null | is_null($var) |
| is_numeric | 判断是否为数字或数字字符串 | is_numeric($var) |
| is_callable | 判断是否为可调用的结构 | is_callable($var) |
| is_resource | 判断是否为资源类型 | is_resource($var) |
| get_class | 返回对象所属类的名称 | get_class($obj) |
| class_exists | 检查类是否已定义 | class_exists($class, $autoload) |
| function_exists | 检查函数是否已定义 | function_exists($function) |
| method_exists | 检查类或对象的方法是否存在 | method_exists($object, $method) |
| serialize | 将变量序列化为可存储的字符串 | serialize($value) |
| unserialize | 将序列化字符串还原为 PHP 值 | unserialize($data, $options) |
| var_export | 输出或返回变量的可执行 PHP 表示 | var_export($value, $return) |
| 函数名称 | 描述 | 语法 (Syntax) |
|---|---|---|
| preg_match | 执行一次正则表达式匹配 | preg_match($pattern, $subject, &$matches) |
| preg_match_all | 执行全局正则表达式匹配 | preg_match_all($pattern, $subject, &$matches) |
| preg_replace | 执行正则表达式的搜索和替换 | preg_replace($pattern, $replacement, $subject, $limit) |
| preg_replace_callback | 用回调函数的返回值进行正则替换 | preg_replace_callback($pattern, $callback, $subject) |
| preg_split | 用正则表达式分割字符串 | preg_split($pattern, $subject, $limit, $flags) |
| preg_quote | 转义正则表达式中的特殊字符 | preg_quote($str, $delimiter) |
| preg_grep | 返回数组中匹配模式的元素 | preg_grep($pattern, $array, $flags) |
| preg_filter | 正则替换并仅返回匹配的部分 | preg_filter($pattern, $replacement, $subject) |
| 函数名称 | 描述 | 语法 (Syntax) |
|---|---|---|
| json_encode | 将 PHP 值编码为 JSON 字符串 | json_encode($value, $flags) |
| json_decode | 将 JSON 字符串解码为 PHP 变量 | json_decode($json, $assoc, $depth, $options) |
| json_last_error | 返回最后一次 JSON 操作的错误码 | json_last_error() |
| json_last_error_msg | 返回最后一次 JSON 错误的描述信息 | json_last_error_msg() |
| 函数名称 | 描述 | 语法 (Syntax) |
|---|---|---|
| urlencode | 编码 URL 字符串(空格转为 +) | urlencode($str) |
| urldecode | 解码已编码的 URL 字符串 | urldecode($str) |
| rawurlencode | 按 RFC 3986 编码 URL(空格转为 %20) | rawurlencode($str) |
| rawurldecode | 对已编码的 URL 字符串进行解码 | rawurldecode($str) |
| http_build_query | 生成 URL 编码的查询字符串 | http_build_query($data, $prefix, $sep) |
| parse_url | 解析 URL 并返回其组成部分 | parse_url($url, $component) |
| parse_str | 将查询字符串解析到变量或数组 | parse_str($str, &$result) |
| base64_encode | 对数据进行 Base64 编码 | base64_encode($data) |
| base64_decode | 对 Base64 字符串进行解码 | base64_decode($data, $strict) |
| get_headers | 获取服务器响应头信息 | get_headers($url, $assoc) |
| 函数名称 | 描述 | 语法 (Syntax) |
|---|---|---|
| md5 | 计算字符串的 MD5 散列(32 位十六进制) | md5($str, $raw) |
| sha1 | 计算字符串的 SHA-1 散列(40 位十六进制) | sha1($str, $raw) |
| hash | 使用指定算法计算散列值 | hash($algo, $data, $raw) |
| hash_hmac | 使用 HMAC 方法与密钥生成散列值 | hash_hmac($algo, $data, $key, $raw) |
| password_hash | 创建密码的散列值 | password_hash($password, $algo, $options) |
| password_verify | 验证密码与散列值是否匹配 | password_verify($password, $hash) |
| crypt | 单向字符串散列(基于 Unix crypt) | crypt($str, $salt) |
| crc32 | 计算字符串的 CRC32 校验和 | crc32($str) |
| 函数名称 | 描述 | 语法 (Syntax) |
|---|---|---|
| trigger_error | 产生一个用户级错误信息 | trigger_error($message, $type) |
| error_reporting | 设置应报告哪些 PHP 错误 | error_reporting($level) |
| set_error_handler | 设置用户自定义的错误处理函数 | set_error_handler($callback) |
| set_exception_handler | 设置未捕获异常的处理函数 | set_exception_handler($callback) |
| restore_error_handler | 恢复之前的错误处理函数 | restore_error_handler() |
| restore_exception_handler | 恢复之前的异常处理函数 | restore_exception_handler() |
| 函数名称 | 描述 | 语法 (Syntax) |
|---|---|---|
| echo | 输出一个或多个字符串(语言结构) | echo $expr1, ...$exprs |
| 输出字符串并返回 1(语言结构) | print $expr | |
| printf | 按格式字符串输出 | printf($format, ...$values) |
| vprintf | 输出格式化字符串,参数以数组传入 | vprintf($format, $args) |
| vsprintf | 返回格式化字符串,参数以数组传入 | vsprintf($format, $args) |
| ob_start | 打开输出缓冲 | ob_start($callback, $chunk, $flags) |
| ob_get_contents | 返回输出缓冲区的内容 | ob_get_contents() |
| ob_get_clean | 返回并清空输出缓冲区 | ob_get_clean() |
| ob_end_flush | 冲刷(发送)并关闭输出缓冲 | ob_end_flush() |
| ob_end_clean | 清空并关闭输出缓冲 | ob_end_clean() |
| header | 发送原始 HTTP 头 | header($str, $replace, $code) |
| die | 输出消息并终止脚本(语言结构) | die($status) |
| exit | 终止当前脚本的执行(语言结构) | exit($status) |
| 函数名称 | 描述 | 语法 (Syntax) |
|---|---|---|
| define | 定义一个常量 | define($name, $value, $case_insensitive) |
| defined | 检查某个常量是否已经定义 | defined($name) |
| eval | 把字符串作为 PHP 代码执行(慎用) | eval($code) |
| list | 将数组中的值赋给一组变量(语言结构) | list($a, $b) = $array |
| array | 创建数组(语言结构) | array(...$values) |
| sleep | 使脚本暂停指定的秒数 | sleep($seconds) |
| usleep | 使脚本暂停指定的微秒数 | usleep($microseconds) |
| getenv | 获取环境变量的值 | getenv($name) |
| putenv | 设置环境变量的值 | putenv($setting) |
| version_compare | 比较两个 PHP 版本号 | version_compare($v1, $v2, $op) |
| memory_get_usage | 返回当前内存使用量(字节) | memory_get_usage($real) |
| assert | 断言检查,用于调试 | assert($assertion, $description) |
| clone | 复制一个对象(语言结构) | clone $object |
| get_defined_constants | 返回所有已定义的常量 | get_defined_constants($categorize) |
语法中的方括号参数为可选项;点击表格中任意单元格可复制该格内容;数据仅供参考,实际请以官方最新标准为准。
PHP函数大全收录了 209 个日常开发中最常用的 PHP 函数,按「字符串处理、数组操作、数学运算、日期时间、文件目录、变量与类型、URL与编码」等 13 类分组,每个函数配有中文描述与语法格式。
写代码时突然想不起 array_map 和 array_walk 的签名、或是 strtotime 的用法,打开本页搜索函数名即可秒级定位,点击任意单元格复制语法直接粘贴修改。
本表以 PHP 8 时代仍广泛使用的函数为主。建议同时留意官方手册中每个函数的参数类型与返回值说明,避免类型陷阱。
截取、替换、查找、分割、编码等字符串函数一应俱全。
排序、过滤、映射、增删、合并等数组函数分类齐全。
time、date、strtotime、DateTime 常用姿势速查。
读写文件、遍历目录、路径处理的常用函数集中呈现。
点选函数名或语法即可复制,贴进 IDE 即用。
输入函数名即时过滤,告别翻手册找函数。
从字符串、数组、日期等分组进入,或搜索函数名。
对照语法格式确认必选与可选参数顺序。
点击复制函数语法,粘贴到代码中修改参数。
php.net 官方手册有每个函数更完整的说明与注意事项。
isset 检测变量是否已设置且不为 null;empty 检测变量是否为空(''、0、'0'、null、false、空数组都算空)。判断存在用 isset,判断业务为空用 empty,注意 0 和 '0' 会被 empty 判为空。
两者都在数组中查找值:in_array 返回布尔值,array_search 返回对应的键名。默认都是松散比较,建议加第三个参数 true 使用严格比较,避免 0 == 'abc' 这类坑。
输出到 HTML 用 htmlspecialchars 转义防 XSS;拼接 SQL 一律使用预处理语句(PDO/mysqli prepare);处理文件路径、命令参数分别用对应的安全函数,不要手工拼接。
简单格式化用 date('Y-m-d H:i:s', 时间戳) 即可;涉及加减日期、时区转换、日期比较等复杂操作,DateTime 与 DateInterval 更清晰也不易出错。
如果本站工具对你有帮助,欢迎请作者喝杯咖啡