我在Xampp上使用PHP 8 (Windows)
已将extension=php_enchant.dll添加到php.ini中

添加到windows路径的[php]/lib/enchant
libenchant_hunspell.dll / libenchant_ispell.dll / libenchant_myspell.dll复制到*.dic & *.aff到[php]/share/myspell/dicts但仍然不能让附魔来检测经纪人。
样本代码
<?php
$broker = enchant_broker_init();
$tag = 'en_US';
$bprovides = enchant_broker_describe($broker);
echo "Current broker provides the following backend(s):\n";
print_r($bprovides);输出
Current broker provides the following backend(s): Array ( ) Current broker provides the following dictionaries: Array ( )发布于 2021-05-06 17:22:51
我也遇到了同样的问题。我在PHP核心方面比较熟练,经过几天的调试,我终于开始工作了。不幸的是,lib_enchant和PHP8似乎都有一些变化。
lib_enchant 2.x和PHP8(在Windows上)似乎只支持Hun拼写提供程序(PHP7.x和以前的版本同时使用ispell和my拼写提供程序)。此外,现在看来,增强程序将访问提供程序DLL的路径硬编码为:
C:\usr\local\lib\enchant-2因此,必须找到libenchant2_hunspell.dll发行版中的lib/enchant文件夹中的,以便:
C:\usr\local\lib\enchant-2\libenchant2_hunspell.dll类似地,字典文件的位置默认为:
C:\usr\local\share\enchant因此,在我的例子中,我得到了该文件夹中的以下文件:
C:\usr\local\share\enchant\en_US.aff
C:\usr\local\share\enchant\en_US.dic
C:\usr\local\share\enchant\es_ANY.aff
C:\usr\local\share\enchant\es_ANY.dic在我对着魔源的回顾中,似乎您可以通过环境变量ENCHANT_CONFIG_DIR来控制拼写检查字典的位置,但是我相信提供程序的位置现在是硬编码的。这是lib_enchant 2.x和PHP8的新特性..。这给我们带来了巨大的麻烦,因为我们不想在Windows机器上安装c:\usr\local中的软件。
我可能会编写一个补丁并将其提交给PHP来修复这个问题,但是我担心他们不会接受它,因为修补程序将真正在lib_enchant中。PHP确实在github上托管了他们自己的lib_enchant副本,用于构建类似这样的依赖关系,所以他们可能会集成这些更改。
我希望这对其他人有帮助。
发布于 2021-07-15 12:10:27
我没有资格为jriffel73的答案留下评论,所以我创建了一个新的答案。
我也面临着字典数组在jriffel73应答中的所有操作都是空的问题。所以,我只是改变了字典的路径,它起了作用。
发自:
C:\usr\local\share\enchant\en_US.aff至:
C:\usr\local\share\enchant\hunspell\en_US.aff我还授予了这些文件的所有权利
https://stackoverflow.com/questions/67154386
复制相似问题