我正在尝试结合使用p拼写和用于PHP的拼写。
我用这种方式安装了它:
sudo apt-get install libpspell-dev
sudo apt-get install php5-pspell
sudo apt-get install aspell-de在此之后,下面是一个示例代码:
$pspell_link = pspell_new("de");
var_dump(pspell_check($pspell_link, "Verkäuferin"));
if (!pspell_check($pspell_link, "Verkäuferin")) {
$vorschlaege = pspell_suggest($pspell_link, "verkäuferin");
foreach ($vorschlaege as $vorschlag) {
echo "Mögliche Schreibweise:" . $vorschlag . "<br>";
}
}有两个问题:
,
发布于 2012-07-27 01:36:35
尝试指定字符编码。我只需将第一行更改为:
$pspell_link = pspell_new("de", "", "", "utf-8");另外:尽管这允许“Verk uferin”通过拼写检查,但在我将这一行放入我的php.ini文件之前,我的服务器无法正确输出带有umlauts的字母。
default_charset = "utf-8"有关PHP字符编码的更多信息,此页面看起来很有用:
http://kore-nordmann.de/blog/php_charset_encoding_FAQ.html#which-charset-encoding-do-strings-have-in-php
至于您的第二个问题,虽然PHP使用的A拼写包支持不区分大小写的匹配,但遗憾的是,PHP不允许您选择该选项。以下是我能想到的最好的解决方案:
$pspell_link = pspell_new("de", "", "", "utf-8");
$wort = "verkäuferin";
$richtig = pspell_check($pspell_link, $wort);
if (!$richtig) {
$vorschlaege = pspell_suggest($pspell_link, $wort);
// make a copy of the array with all words in lowercase, so we can still
// display the original suggestions if necessary
$kleinschrift_vorschlaege = array_map('strtolower', $vorschlaege);
// convert the original word to lowercase before comparing it
$richtig = in_array(strtolower($wort), $kleinschrift_vorschlaege);
}
echo "'$wort' ist " . ($richtig ? "" : "nicht") . " richtig buchstabiert.<br/>";
if (!$richtig) {
echo "Mögliche Schreibweisen:<br/>";
foreach ($vorschlaege as $vorschlag) {
echo " " . $vorschlag . "<br/>";
}
}发布于 2015-04-10 06:41:34
有一个简单的解决办法。就这么做吧:
$word = ucfirst($word); //Always capitalize to avoid case sensitive error
if (!pspell_check($dict, $word)) {
$suggestions = pspell_suggest($dictionary, $word);
}https://stackoverflow.com/questions/10383583
复制相似问题