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 伺服器上以 FastCGI 模組執行 PHP5,並且我最近安裝了 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)。幸運的是,我碰巧想到透過命令列嘗試相同的腳本,這給出了更詳細的錯誤。發生的是,字典安裝程式在 Aspell\data 目錄中建立 *.dat 檔案時,使用了 Windows 標準 CRLF "\r\n" 而不是 UNIX 標準 "\n" 作為換行符號。將它們全部改回 UNIX 標準後,一切都正常運作了。它顯然對這些換行符號非常敏感,因此如果您正在絞盡腦汁思考為什麼 pspell_new_config 會中斷您的腳本,並且您正在使用 Windows 伺服器,請首先確保您的字典檔案中沒有任何多餘的 "\r" 字元。
To Top