php常用函数总结
php常用函数总结
一、字符串处理(开发中最常用)
- strlen() 获取字符串长度(字节数)strlen("PHP") → 3
- mb_strlen() 获取多字节字符串长度(支持中文) mb_strlen("PHP编程", "utf8") → 4
- strpos() 查找字符串首次出现的位置 strpos("abcabc", "b") → 1
- str_replace() 字符串替换 str_replace("a", "A", "abc") → "Abc"
- substr() 截取字符串(按字节)substr("abcdef", 1, 2) → "bc"
- mb_substr() 截取多字节字符串(支持中文)mb_substr("PHP编程", 2, 2, "utf8") → "编程"
- trim() 去除字符串首尾空格 / 指定字符 trim(" abc ") → "abc"
- explode() 字符串分割为数组 explode(",", "a,b,c") → ["a","b","c"]
- implode()/join() 数组拼接为字符串 implode(",", ["a","b"]) → "a,b"
- strtolower()/strtoupper() 字符串转小写 / 大写 strtoupper("php") → "PHP"
- htmlspecialchars() 转义 HTML 特殊字符(防 XSS)htmlspecialchars("
二、数组操作(高频核心)
- count() 获取数组元素个数 count([1,2,3]) → 3
- array_push()/array_pop() 数组尾部添加 / 删除元素 array_push($arr, 4);array_pop($arr)
- array_merge() 合并数组 array_merge([1,2], [3,4]) → [1,2,3,4]
- array_key_exists() 检查数组是否存在指定键 array_key_exists("name", ["name"=>"PHP"]) → true
- in_array() 检查数组是否存在指定值in_array(2, [1,2,3]) → true
- array_map() 对数组每个元素应用回调函数array_map(fn($v)=>$v*2, [1,2]) → [2,4]
- array_filter() 过滤数组元素(回调函数判断)array_filter([1,2,3], fn($v)=>$v>1) → [2,3]
- array_keys()/array_values() 获取数组所有键 / 值 array_keys(["a"=>1,"b"=>2]) → ["a","b"]
- array_search() 查找值并返回对应键 array_search(2, [1,2,3]) → 1
- sort()/rsort() 数组升序 / 降序排序(重置索引)sort($arr);rsort($arr)
- ksort()/krsort() 按数组键升序 / 降序排序 ksort(["b"=>2,"a"=>1]) → ["a"=>1,"b"=>2]
三、文件操作
- file_get_contents() 读取文件内容到字符串适合小文件,大文件用 fopen/fgets
- file_put_contents() 将字符串写入文件支持追加模式:file_put_contents($file, $content, FILE_APPEND)
- fopen()/fclose() 打开 / 关闭文件句柄需手动关闭句柄,避免资源泄漏
- fgets() 逐行读取文件适合大文件,减少内存占用
- is_file()/is_dir() 判断是否为文件 / 目录需先检查文件 / 目录是否存在
- file_exists() 检查文件 / 目录是否存在常用在读写文件前的校验
- unlink() 删除文件谨慎使用,删除后无法恢复
- mkdir()/rmdir() 创建 / 删除目录mkdir支持递归创建:mkdir($path, 0755, true)
四、时间与日期
- time() 获取当前时间戳(秒)time() → 1737888000
- microtime() 获取微秒级时间戳(性能统计)microtime(true) → 1737888000.1234
- date() 格式化时间戳为字符串date("Y-m-d H:i:s", time()) → "2026-01-26 10:00:00"
- strtotime() 将时间字符串转为时间戳strtotime("2026-01-26") → 1737888000
- date_default_timezone_set() 设置默认时区date_default_timezone_set("Asia/Shanghai")
- strftime() 本地化时间格式化支持不同语言的时间格式
五、数据库操作(PDO 为主)
- new PDO() 建立数据库连接 $pdo = new PDO("mysql:host=localhost;dbname=test", "root", "123456");
- prepare() 预处理 SQL 语句(防 SQL 注入)$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
- execute() 执行预处理语句 $stmt->execute([1001]);
- fetch()/fetchAll() 获取单条 / 多条查询结果 $user = $stmt->fetch(PDO::FETCH_ASSOC);
- lastInsertId() 获取最后插入的 ID $pdo->lastInsertId();
六、网络与 HTTP
- $_GET/$_POST 获取 GET/POST 请求参数 $id = $_GET["id"] ?? 0;
- $_SESSION 操作会话数据 $_SESSION["user_id"] = 1001;
- $_COOKIE 获取 Cookie 数据 $token = $_COOKIE["token"] ?? "";
- header() 发送 HTTP 响应头header("Location: /index.php");(跳转);header("Content-Type: application/json");
- http_build_query() 拼接 URL 查询字符串 http_build_query(["id"=>1,"name"=>"PHP"]) → "id=1&name=PHP"
- file_get_contents() 发送 HTTP 请求(GET)file_get_contents("https://api.example.com/data");
七、数据类型与校验
- is_int()/is_string() 判断变量类型 is_int(123) → true;is_string("123") → true
- intval()/floatval() 转为整数 / 浮点数 intval("123.45") → 123
- json_encode()/json_decode() 数组 / 对象与 JSON 互转json_encode(["name"=>"PHP"]) → '{"name":"PHP"}'
- empty()/isset() 检查变量是否为空 / 已定义 empty("") → true;isset($var) → false(未定义)
- filter_var() 过滤 / 校验数据(邮箱、URL 等)filter_var("test@example.com", FILTER_VALIDATE_EMAIL) → true
八、其他高频函数
- rand()/mt_rand() 生成随机数(mt_rand 性能更高)
- md5()/sha1() 生成哈希值(注意:密码推荐用 password_hash)password_hash()/password_verify()密码加密 / 验证(安全)
- error_reporting() 设置错误报告级别
- var_dump()/print_r() 打印变量(调试用)
总结
- 核心分类:PHP 常用函数可按「字符串、数组、文件、时间、数据库、HTTP、数据校验」七大模块记忆,覆盖 80% 的开发场景;
- 避坑要点:处理中文优先用mb_开头的多字节函数,数据库操作优先用 PDO 预处理,密码存储禁用 md5/sha1,改用password_hash;
- 效率提示:数组操作优先用原生函数(比手动循环快),文件操作根据大小选择file_get_contents(小文件)或fgets(大文件)。
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。