PHP Conference Japan 2024

示例

示例 #1 Enchant 用法示例

<?php
$tag
= 'en_US';
$r = enchant_broker_init();
$bprovides = enchant_broker_describe($r);
echo
"Current broker provides the following backend(s):\n";
print_r($bprovides);

$dicts = enchant_broker_list_dicts($r);
print_r($dicts);
if (
enchant_broker_dict_exists($r,$tag)) {
$d = enchant_broker_request_dict($r, $tag);
$dprovides = enchant_dict_describe($d);
echo
"dictionary $tag provides:\n";
$wordcorrect = enchant_dict_check($d, "soong");
print_r($dprovides);
if (!
$wordcorrect) {
$suggs = enchant_dict_suggest($d, "soong");
echo
"Suggestions for 'soong':";
print_r($suggs);
}
enchant_broker_free_dict($d);
} else {
}
enchant_broker_free($r);
?>
添加注释

用户贡献的注释 3 条注释

7
robert dot johnson at icap dot com
12 年前
以下是 Windows 用户的帮助

您需要向计算机添加字典才能使用 Enchant。

1. Enchant 会查看您的注册表项,我不知道它需要哪些项,但它会在这里查找 - 我忽略了所有这些
* Default User\Software\Enchant\Config
* Default User\Software\Enchant\Ispell
* Default User\Software\Enchant\Myspell
2. 它会查找 OpenOffice 字典(来自 OpenOffice 的注册表设置)
3. 它会查找文件夹 [PHP]\share\myspell\dicts

我通过将 en-us 字典文件从 Firefox 复制到 \share\myspell\dicts 并将其重命名为 en_US.* 来使其工作。您可以从这里下载并安装 OpenOffice 字典,我认为:http://extensions.services.openoffice.org/dictionary

Enchant 创建并写入以下文件夹,因此您必须允许 PHP 对其进行读写权限:[SYSTEM32]\config\systemprofile\Application Data\enchant

如果 Enchant 可以接受参数以指定主字典和用户字典的位置,那将很方便,我想注册表项是唯一的方法。
3
robert dot johnson at icap dot com
11 年前
重复 wschalle at gmail dot com 在页面 https://php.net/manual/en/book.enchant.php 上的注释

除非将 libenchant_myspell.dll 和 libenchant_ispell.dll 放置在 PHP 5.4.13 的 [PHP]\lib\enchant 中,否则 enchant 库将无法工作。

字典仍将从 [PHP]\share\myspell\dicts 中加载。
2
ch1902
11 年前
补充 robert.johnson 非常有帮助的帖子的一点,我发现字典文件(*.dic 和 *.aff)只能包含 A-Z 和 _ 字符,否则它们不会出现在 enchant_broker_list_dicts() 的输出中(至少对于 PHP 5.4 / Windows)。

https://addons.mozilla.org/firefox/language-tools/ 下载一些字典文件时会出现此问题,例如文件名包含连字符,例如 pt-BR。只需将文件名中的连字符替换为下划线,Enchant 即可识别语言代码。
To Top