PHP Conference Japan 2024

pspell_new

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

pspell_new加载新的字典

描述

pspell_new(
    字符串 $language,
    字符串 $spelling = "",
    字符串 $jargon = "",
    字符串 $encoding = "",
    整数 $mode = 0
): PSpell\Dictionary|false

pspell_new() 打开一个新的字典,并返回一个 PSpell\Dictionary 实例,用于其他 pspell 函数。

有关更多信息和示例,请查看内联手册 pspell 网站:» http://aspell.net/

参数

language

language 参数是语言代码,由两个字母的 ISO 639 语言代码和一个可选的两个字母的 ISO 3166 国家代码组成,国家代码在连字符或下划线之后。

spelling

spelling 参数是对于有多种拼写语言(如英语)请求的拼写。已知值有“american”、“british”和“canadian”。

jargon

jargon 参数包含额外信息,用于区分具有相同语言和拼写参数的两个不同的词表。

encoding

encoding 参数是单词的预期编码。有效值为“utf-8”、“iso8859-*”、“koi8-r”、“viscii”、“cp1252”、“machine unsigned 16”、“machine unsigned 32”。此参数在很大程度上未经测试,因此使用时请谨慎。

mode

mode 参数是拼写检查器的工作模式。有几种模式可用

Mode 是从上面列出的不同常量构造的位掩码。但是,PSPELL_FASTPSPELL_NORMALPSPELL_BAD_SPELLERS 是互斥的,因此您应该只选择其中一个。

返回值

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

变更日志

版本 描述
8.1.0 现在返回 PSpell\Dictionary 实例;以前,返回的是 资源

示例

示例 #1 pspell_new()

<?php
$pspell
= pspell_new("en", "", "", "",
(
PSPELL_FAST|PSPELL_RUN_TOGETHER));
?>

添加注释

用户贡献的注释 2 条注释

wookie
16 年前
只是一个小的提示,我注意到当您多次调用 pspell_new 时,php 不会在资源被销毁时释放内存使用,而只会在您的整个脚本完全结束时释放。因此,如果您创建了一个 pspell_link 资源,并且您打算在其他地方再次使用它,而不是再次调用 pspell_new,请跟踪您最初的 pspell_link 资源实例化,并再次使用它,您的脚本将运行得更高效。

我只是通过每次都调用一个新的 pspell_new 来在 16 个字典之间切换,我的服务器上的内存使用量不断增长,直到我遇到故障/php 内核转储。:-/ 所以我将每个 pspell 资源存储在一个以语言为键的数组中,并在创建之前先检查资源是否存在。

希望这对某些人有所帮助。
allan at wagawaga dot dk
16 年前
我认为 language 和 spelling 参数在不同的 PHP 版本和/或 aspell/UNIX 发行版上有所不同。

我的 PHP 5.2.6 Debian 忽略了 spelling 参数。

相反

对于美国人,使用 en_US 作为语言。
对于英国人,使用 en_GB(而不是 en_UK)
对于加拿大人,使用 en_CA
To Top