PHP 扩展详解

PHP 扩展详解

一、建议启用的 PHP 扩展

bcmath Core ctype curl date dom exif fileinfo filter hash iconv igbinary imagick intl json libxml mbstring mysqli mysqlnd openssl pcre PDO pdo_mysql Phar random redis Reflection session SimpleXML SPL standard tokenizer xml xmlreader xmlwriter Zend OPcache zip zlib

二、建议禁用的 PHP 扩展

apcu memcache memcached gd imap smtp sockets readline pdo_dblib pdo_sqlite sqlite3 posix shmop xdebug

三、关键 PHP 扩展详解

1. 对象缓存

以下三者均为对象缓存,通常三选一即可。

  • APCu:适用于单服务器环境,主要用于缓存 PHP 用户变量,不支持分布式
  • Redis:支持分布式、数据持久化及复杂数据结构(如列表、集合),适合多数现代应用场景
  • Memcache / Memcached:专注于高性能的分布式键值缓存,协议简单,适合仅需纯内存缓存且无需持久化的场景

2. 性能加速

  • OPcache:作为 Zend 引擎内置组件,通过缓存 PHP 字节码显著提升性能
  • igbinary:提供比默认 PHP 序列化更高效的二进制格式。若对缓存读写速度/空间有较高要求,建议启用

3. 图像处理

  • gd:适合简单的缩略图或水印需求
  • imagick:支持更多格式和滤镜,适合电商、专业图片处理场景
  • Exif:读取图像元数据(如拍摄时间、拍摄设备)及自动纠正手机照片旋转方向

4. 文件操作

  • Fileinfo:检测上传文件的 MIME 类型,防止恶意文件上传
  • Zip:提供 zip 压缩支持,用于插件/主题的安装、备份与导出
  • Zlib:提供 gzip 压缩支持,用于数据传输压缩及解压操作
  • Phar:用于处理 .phar 打包文件,使用 WP-CLI 命令行工具时开启

5. 网络类

  • cURL:用于发起 HTTP/HTTPS 请求,是与外部 API交互的必选组件
  • OpenSSL:提供 SSL/TLS 支持,用于 HTTPS 安全连接、加密数据传输及安全邮件发送
  • mbstring:专门处理多字节字符(如中文、日文等 UTF-8 文本),若网站包含非 ASCII 字符或涉及国际化,建议开启
  • intl:基于 ICU 库,提供强大的日期、时间、货币、数字格式化及区域排序功能,适合对多语言显示格式有严格要求的国际化应用

6. 邮件类

  • imap:仅在需要从服务器拉取邮件时启用

7. 通信类

  • sockets:用于自定义网络通信需求
  • Readline:命令行工具辅助,在运行 PHP 脚本时提供命令历史回溯和编辑功能

8. 数据库访问类

  • mysqli:连接数据库的接口
  • mysqlnd:底层高性能驱动
  • PDO:通用的数据库访问方式
  • pdo_mysql:许多现代插件和框架使用 PDO 接口访问 MySQL
  • pdo_dblib:用于连接 Microsoft SQL Server
  • pdo_sqlite & sqlite3:用于 SQLite 数据库

9. 数据解析类

  • JSON:用于编码和解码JSON数据
  • libxml:基础依赖,大部分 XML 扩展的底层库
  • DOM:核心组件,用于操作 HTML/XML 结构
  • SimpleXML:用于快速读取配置文件或外部数据源
  • XMLReader / XMLWriter:用于高效处理大型 XML 文件

10.系统 / 安全类

  • standard & SPL:提供 PHP 基础函数、数组对象、迭代器等核心功能
  • Reflection:用于动态分析类和方法
  • ctype & filter:用于验证用户输入(如邮箱格式、字符类型)和过滤恶意数据
  • tokenizer:用于代码静态分析、高亮或自动补全工具
  • posix:提供 Unix 系统级函数(如获取用户 ID、进程信号)
  • shmop:用于共享内存操作,属于底层高性能优化手段

11. 其他扩展

  • Core:PHP 核心功能模块
  • random:提供加密安全的随机数
  • date:处理所有时间戳、文章发布时间、定时任务
  • hash:用于密码哈希、文件完整性校验和 Cookie 签名
  • session:PHP 会话管理扩展,用于保存用户登录状态、购物车、后台认证等
  • iconv:用于字符编码转换(如 UTF-8 转 GBK)
  • bcmath:高精度计算,运行 WooCommerce、积分系统、金融类插件或需要精确小数运算时必须开启
  • xdebug:调试器与性能分析工具,支持断点调试、函数跟踪、代码覆盖率分析等。但会显著降低网站性能并暴露代码路径信息,建议仅在本地开发调试时开启