PHP函数大全

209 个常用函数 · 13 类分组 · 描述与语法 · 点击复制

返回 ico5.net 在线工具箱 您还可以使用 Eclipse快捷键大全 3ds Max快捷键大全 IDEA快捷键大全 PS快捷键大全

PHP函数大全

共 13 张表 · 209 行 · 浏览器本地运行

一、PHP 字符串处理 - 字符串长度、查找、替换、大小写转换、分割与拼接

函数名称 描述 语法 (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)

二、PHP 数组处理 - 数组增删改查、排序、合并、过滤、集合运算

函数名称 描述 语法 (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)

三、PHP 数学运算 - 绝对值、取整、最大最小、随机、进制转换、对数

函数名称 描述 语法 (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)

四、PHP 日期与时间 - 时间戳、格式化、解析、时区、日期计算

函数名称 描述 语法 (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)

五、PHP 文件与目录 - 文件读写、判断、复制移动、目录遍历、路径处理

函数名称 描述 语法 (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)

六、PHP 变量与类型判断 - 变量检测、类型判断与转换、序列化、类与函数检测

函数名称 描述 语法 (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)

七、PHP 正则与匹配 - 正则匹配、替换、分割、过滤

函数名称 描述 语法 (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)

八、PHP JSON 与编码 - JSON 编码解码、错误获取

函数名称 描述 语法 (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()

九、PHP URL 与网络 - URL 编解码、查询构建、解析、Base64、响应头

函数名称 描述 语法 (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)

十、PHP 加密与哈希 - MD5/SHA/Hash、HMAC、密码哈希、校验和

函数名称 描述 语法 (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)

十一、PHP 错误与异常 - 错误触发、报告级别、自定义处理、异常恢复

函数名称 描述 语法 (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()

十二、PHP 输出与缓冲 - 输出语句、格式输出、输出缓冲控制、HTTP 头

函数名称 描述 语法 (Syntax)
echo 输出一个或多个字符串(语言结构) echo $expr1, ...$exprs
print 输出字符串并返回 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)

十三、PHP 语言结构与杂项 - 常量、eval、list、内存/环境、版本比较

函数名称 描述 语法 (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 即用。

🔍 搜索筛选

输入函数名即时过滤,告别翻手册找函数。

使用方法

1按分类查找

从字符串、数组、日期等分组进入,或搜索函数名。

2看语法

对照语法格式确认必选与可选参数顺序。

3复制使用

点击复制函数语法,粘贴到代码中修改参数。

4查阅官方手册

php.net 官方手册有每个函数更完整的说明与注意事项。

PHP函数大全常见问题 (FAQ)

isset 和 empty 有什么区别?

isset 检测变量是否已设置且不为 null;empty 检测变量是否为空(''、0、'0'、null、false、空数组都算空)。判断存在用 isset,判断业务为空用 empty,注意 0 和 '0' 会被 empty 判为空。

in_array 和 array_search 有什么不同?

两者都在数组中查找值:in_array 返回布尔值,array_search 返回对应的键名。默认都是松散比较,建议加第三个参数 true 使用严格比较,避免 0 == 'abc' 这类坑。

如何安全处理用户输入的字符串?

输出到 HTML 用 htmlspecialchars 转义防 XSS;拼接 SQL 一律使用预处理语句(PDO/mysqli prepare);处理文件路径、命令参数分别用对应的安全函数,不要手工拼接。

date 和 DateTime 类怎么选?

简单格式化用 date('Y-m-d H:i:s', 时间戳) 即可;涉及加减日期、时区转换、日期比较等复杂操作,DateTime 与 DateInterval 更清晰也不易出错。