PHP Conference Japan 2024

pspell_new_config

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_new_config基于给定配置加载一个新的词典并设置

描述

pspell_new_config(PSpell\Config $config): PSpell\Dictionary|false

pspell_new_config() 使用在 config 中指定的设置打开一个新的词典,该词典由 pspell_config_create() 创建并使用 pspell_config_*() 函数修改。此方法为您提供了最大的灵活性,并具有 pspell_new()pspell_new_personal() 提供的所有功能。

参数

config

config 参数是创建配置时 pspell_config_create() 返回的参数。

返回值

成功时返回一个 PSpell\Dictionary 实例,失败时返回 false

变更日志

版本 描述
8.1.0 config 参数现在期望一个 PSpell\Config 实例;以前,期望一个 资源
8.1.0 现在返回一个 PSpell\Dictionary 实例;以前,返回一个 资源

示例

示例 #1 pspell_new_config()

<?php
$pspell_config
= pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell = pspell_new_config($pspell_config);
?>

添加注释

用户贡献的注释 1 个注释

soapergem at gmail dot com
16 年前
今天我遇到了一个有趣的问题,我想在这里分享一下,以节省下一个遇到相同情况的开发人员的大量麻烦。我一直在 Windows IIS 服务器上运行 PHP5 作为 FastCGI 模块,并且最近安装了 Aspell 库并在我的 php.ini 文件中启用了 pspell 扩展。我还安装了英语 Aspell 词典。但是当我开始使用 pspell 时,我遇到了模棱两可的错误,这些错误会在没有警告的情况下终止脚本执行。

因此我开始分解问题,并得出结论,以下代码成功执行了第一行,但在最后一行调用 pspell_new_config 时出错

<?php

$pspell_config
= pspell_config_create('en');
$pspell_link = pspell_new_config($pspell_config);

?>

这在浏览器中返回了一个 FastCGI 错误,错误号为 -2147467259 (0x80004005)。幸运的是,我恰好想到通过命令行尝试相同的脚本,这给出了更具描述性的错误。发生的情况是,字典安装程序使用 Windows 标准 CRLF “\r\n” 而不是 UNIX 标准 “\n” 作为换行符,在 Aspell\data 目录中创建了 *.dat 文件。通过将所有这些都更改回 UNIX 标准,一切正常。它显然对这些换行符非常敏感,因此,如果您正在绞尽脑汁思考为什么 pspell_new_config 中断了您的脚本,并且您正在使用 Windows 服务器,请首先确保您的字典文件中没有任何多余的 “\r” 字符。
To Top