PHP Conference Japan 2024

pspell_new

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

pspell_new載入新的字典

描述

pspell_new(
    string $language,
    string $spelling = "",
    string $jargon = "",
    string $encoding = "",
    int $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 參數是拼寫檢查器將運作的模式。有多種模式可用

模式是由上面列出的不同常數所構成的位元遮罩。但是,PSPELL_FASTPSPELL_NORMALPSPELL_BAD_SPELLERS 是互斥的,因此您應該只選擇其中一個。

傳回值

成功時傳回 PSpell\Dictionary 實例,失敗時傳回 false

變更記錄

版本 描述
8.1.0 現在傳回 PSpell\Dictionary 實例;先前傳回 resource

範例

範例 1 pspell_new()

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

新增筆記

使用者貢獻筆記 2 筆筆記

10
wookie
16 年前
只是一個小提示,我注意到當您多次呼叫 pspell_new 時,php 不會在資源被銷毀時釋放記憶體使用量,而只會在您的整個腳本完全結束時釋放。因此,如果您建立一個 pspell_link 資源,並且打算在其他地方再次使用它,請追蹤您原始的 pspell_link 資源實例化,並再次使用它,而不是再次呼叫 pspell_new,您的腳本會執行得更有效率。

我當時只是每次都呼叫新的 pspell_new 在 16 個字典之間切換,伺服器上的記憶體使用量不斷增長,直到我遇到失敗/php 核心轉儲。:-/ 所以我將每個 pspell 資源儲存在以語言為鍵的陣列中,並在需要時先檢查資源是否存在,然後再建立一個。

我希望這能對某人有所幫助。
1
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