XAMPP 默认不启用 enchant 扩展,因 PHP 7.4+ 官方 Windows 构建已移除支持,ext/ 目录无 php_enchant.dll,且依赖的 hunspell 等 DLL 缺失或版本不匹配,强行启用易报错或崩溃。

enchant 扩展在 XAMPP 中默认不启用,且 Windows 版本的 PHP 官方构建(包括 XAMPP)自 PHP 7.4 起已移除对 enchant 的官方支持 —— 所以你直接在 php.ini 里取消 ;extension=enchant 注释,大概率会失败并报错 PHP Warning: PHP Startup: Unable to load dynamic library 'enchant'。
为什么 XAMPP 默认没有 enchant 扩展
PHP 官方从源码编译阶段就不再链接 libenchant 库;XAMPP 使用的是 PHP 官方二进制包,因此其 ext/ 目录下压根不存在 php_enchant.dll。即使你手动下载第三方编译版,也极可能因依赖的 hunspell、aspell 或 myspell DLL 版本不匹配而加载失败。
- PHP 7.3 是最后一个在 Windows 官方包中带
php_enchant.dll的版本(XAMPP 7.3.x 可能有,但 7.4+ 全无) - enchant 依赖底层拼写引擎(如 hunspell.dll),XAMPP 不附带这些,也未配置 PATH 搜索路径
- 即便强行凑齐 DLL,PHP 8.0+ 的 ABI 变更会导致
Access Violation崩溃
替代方案:用纯 PHP 实现基础拼写检查
如果你只需要检测错词或获取建议,不用强依赖 enchant,可用以下轻量方式:
XAMPP 8.0.30 是一款免费、开源的跨平台 Web 服务器集成包,专为快速搭建本地 PHP 开发环境而设计。该版本核心组件包括:Apache 2.4.56、MySQL 8.0.33、PHP 8.0.30、phpMyAdmin 5.2.1 等。它支持 Windows、Linux 和 macOS 系统,可让开发者在个人电脑上轻松模拟服务器环境,无需复杂配置即可运行 WordPress、Thin
- 用
curl调用开源服务:比如本地部署 nspell(Node.js)或 hunspell CLI,再由 PHPexec()调用 - 引入 Composer 包:
composer require pspell/pspell(需系统已装 pspell 扩展,Windows 下仍受限)或更现实的composer require php-speller/php-speller(基于 hunspell 数据文件的纯 PHP 实现) - 简单场景直接用正则 + 词典数组:例如加载一个小型中文/英文常见词表(
.txt),用str_word_count()分词后比对 —— 不准但零依赖、不崩
硬要试 enchant?只适用于 XAMPP 7.3.x 且步骤极脆弱
仅当你的 XAMPP 版本是 7.3.x(如 xampp-windows-x64-7.3.33-0-VC15),才可能成功。操作如下:
- 确认
phpinfo()显示的Loaded Configuration File是C:\xampp\php\php.ini - 下载对应 VC 版本和线程安全(TS)标识的
php_enchant.dll(例如从 pecl.php.net 找 7.3 TS 版) - 把
php_enchant.dll放入C:\xampp\php\ext\,把配套的hunspell.dll和字典文件(en_US.aff/en_US.dic)放进C:\xampp\php\根目录 - 编辑
php.ini,添加两行:extension=enchant和enchant.dictionary.path="C:\xampp\php\" - 重启 Apache 后运行
var_dump(extension_loaded('enchant'));—— 若返回false或 Apache 启动失败,立刻放弃
真正稳定可用的拼写检查,在 XAMPP 环境下基本得绕开 enchant。最省事的是换思路:用前端 spellcheck(contenteditable + spellcheck="true"),或后端改用 HTTP API(如 LanguageTool 自建服务)。硬啃 DLL 兼容性问题,99% 的时间都花在排查 msvcr110.dll 缺失或架构不匹配上,而不是功能本身。

















