本文档整理自项目开发中常用的 PHP 函数、超全局变量及自定义变量,涵盖文件上传、字符串处理、安全防护、环境信息获取等场景
一、文件上传与目录操作
| 函数 / 变量 | 作用 | 应用场景 |
|---|---|---|
move_uploaded_file() |
将 HTTP POST 上传的临时文件移动到指定目录 | 用户头像上传、附件上传、图片上传功能 |
file_exists() |
检查文件或目录是否存在 | 上传前检查是否重名、读取配置文件前验证、删除文件前的确认 |
UPLOAD_PATH |
定义上传文件存储的根目录(常量或变量) | 所有文件上传功能的目录路径配置 |
$_FILES[] |
接收通过 HTTP POST 上传的文件信息 | 获取上传文件的名称、类型、临时路径、错误码等 |
getimagesize() |
获取图片的尺寸和类型信息 | 验证上传文件是否为真实图片、获取图片宽高用于缩略图生成 |
二、字符串处理
| 函数 | 作用 | 应用场景 |
|---|---|---|
substr() |
截取字符串的一部分 | 提取文件扩展名、截取文章摘要、身份证号/手机号脱敏 |
strlen() |
返回字符串的长度 | 验证密码长度、限制用户输入字数、显示富文本内容统计 |
strtolower() |
将字符串转换为小写 | 统一字符大小写,避免大写绕过(如文件扩展名校验) |
str_replace() |
替换字符串中的指定内容 | 关键词过滤、模板变量替换、格式化文本 |
strchr() |
从字符串中查找最后一个指定字符,并返回从该字符到末尾的部分 | 获取文件扩展名(如 strchr($filename, '.')) |
strrpos() |
查找字符串中最后一次出现的位置 | 获取文件扩展名位置、URL 中最后一个斜杠位置 |
deltot() |
自定义函数:删除或替换文件名中的点(防止路径遍历) | 生成安全文件名,防止目录遍历攻击 |
三、超全局变量与服务器信息
| 变量 | 作用 | 应用场景 |
|---|---|---|
$_GET[] |
获取 URL 参数传入的数据 | 接收查询字符串参数(如 ?id=123) |
$_SERVER[] |
获取服务器和执行环境信息 | 获取客户端 IP、判断请求方法(GET/POST)、获取当前 URL、获取用户浏览器信息 |
$_COOKIE[] |
读取客户端存储的 Cookie 数据 | 记住登录状态、用户偏好设置、购物车数据、会话跟踪 |
四、安全相关
| 函数 / 变量 | 作用 | 应用场景 |
|---|---|---|
htmlspecialchars() |
将特殊字符转换为 HTML 实体 | 防止 XSS 攻击、输出用户输入内容到页面、显示富文本内容时转义 |
deltot() |
见上文"字符串处理" | 文件名安全过滤,防止 ../ 等路径穿越 |
strtolower() |
见上文"字符串处理" | 扩展名统一小写,避免大小写绕过黑名单 |
五、文件类型与白名单定义(自定义变量)
| 变量 | 作用 | 应用场景 |
|---|---|---|
$typeCode |
存储文件类型对应的编号或标识 | 根据业务定义类型码(如图片、文档、视频等) |
$fileType |
存储当前文件的类型 | 判断当前上传文件的类型,用于业务逻辑分支 |
$types |
定义允许上传的文件类型白名单 | 限制可上传的 MIME 类型或扩展名列表,提升安全性 |