共享主机环境使用PSpell遇‘en’词典未找到的技术问询
PHP PSpell在共享主机环境的问题与解决方向
我在共享主机环境中尝试运行PHP的基础PSpell功能,使用代码如下:
<?php error_reporting(E_ALL); @ini_set('display_errors', 1); $pSpell = pspell_new("en"); if (pspell_check($pSpell, "and")) { echo "Good"; } else { echo "Bad"; } ?>
无论输入什么单词,输出始终是Bad,同时出现警告:
Warning: pspell_new(): PSPELL couldn't open the dictionary. reason: No word lists can be found for the language "en".
针对这个场景,解答如下:
问题1:共享主机环境下,能否上传自定义词典并让PSpell使用该词典?
可以,但需要满足以下条件:
- 准备好aspell格式的词典文件(包含
.dic词库文件和.aff规则文件),上传到你有权限访问的站点目录(比如根目录下新建的dicts文件夹) - 调用
pspell_new时,通过额外参数指定自定义词典的路径,示例代码调整如下:
<?php error_reporting(E_ALL); @ini_set('display_errors', 1); // 替换为你实际的词典存放路径 $dictPath = $_SERVER['DOCUMENT_ROOT'] . '/dicts'; $pSpell = pspell_new("en", "", "", "", PSpell::OPT_DICTIONARY, $dictPath); if (pspell_check($pSpell, "and")) { echo "Good"; } else { echo "Bad"; } ?>
- 注意:部分共享主机可能限制了文件系统的访问权限,若上传后仍无法读取词典,需联系服务商确认是否允许此类操作。
问题2:应向共享主机服务商具体询问哪些内容,以让主词典正常工作?
直接询问以下几个核心问题:
- 服务器是否已安装英文aspell词典包(通常包名为
aspell-en)? - 如果未安装,能否为我的站点部署该词典包?
- 当前PHP的PSpell扩展是否已启用,且与服务器上的aspell版本兼容?
- 服务器允许用户自定义PSpell词典路径吗?如果允许,有没有路径限制?
内容的提问来源于stack exchange,提问作者azoundria
相关产品推荐
相关产品推荐

