Проверка орфографии pspell

Aries

Новичок
Проверка орфографии pspell

Всем привет.
Стоит задача - проверка орфографии. Установил русский словарь.
Далее как указано в мане, делаю
PHP:
$lcString="мой светь"; // слова с ошибкой
$pspell_link = pspell_new("ru");
if (pspell_check($pspell_link,$lcString))
{
  echo "все пучком";
}
else 
{
  $laSugg=pspell_suggest($pspell_link,$lcString);
  foreach ($laSugg as $laStr)
  {
    echo $laStr."<br>\n";
  }
}
И такая фигня выводится.
Как заставить нормально сие работать?
 

phpcoder

Новичок
Я недавно мучался с такой проблемой. Под виндами (Apache 1.3.34 + PHP 5.1.2).
В, общем, помогло такое решение, в спелчекер (в моем случае был aspell) отдавал строку в KOI8-R кодировке. В остальных кодировках тоже фигню возвращало.
И ещё, спелчекеру, насколько я знаю, нужно отдавать по одному слову, а не всю строку целиком.
 

Aries

Новичок
Все разобрался. Все дело в кодировках.
pspell понимает тока в koir-8, а я ему передавал в win-1251
Добавил пару строк в скрипт и все
PHP:
$lcString="мой светь"; // слова с ошибкой
$pspell_link = pspell_new("ru");
$lcString=convert_cyr_string(,"w","k");
if (pspell_check($pspell_link,$lcString))
{
  echo "все пучком";
}
else 
{
  $laSugg=pspell_suggest($pspell_link,$lcString);
  for ($lnI=0; $lnI<count($laSugg); $lnI++)
  {
    $laSugg[$lnI]=convert_cyr_string($laSugg[$lnI],"k","w");
  }
  foreach ($laSugg as $laStr)
  {
    echo $laStr."<br>\n";
  }
}
-~{}~ 17.11.06 11:50:

Спасибо! Жаль пару часов времени потерял на такую мелочь.
Но зато есть тема, другим пригодится ;)
 

deepslam

Новичок
Да, спасибо за тему!

-~{}~ 17.11.06 18:30:

скажите, а эта библиотека включена по умолчанию?
 

Aries

Новичок
Нет, не включены.

Опишу, как установить их. (Знаю только для Windows )
Сначала скачиваешь с сайта http://aspell.sourceforge.net
инсталяху aspell.exe и нужные тебе словари. Русский, английский...
Инсталишь все это в одну какую нить папку.
Потом заходишь в установленный каталог aspell и копируешь
две DLLки -- aspell-15.dll и pspell.dll -- в папку WINDOWS\SYSTEM32\ или WINNT\SYSTEM32\
Открываем php.ini и добавляем к extension еще такую строчку

extension=php_pspell.dll

Хоть в мане и говорят что не надо добавлять строчку в extension
но у меня только после добавления заработало.

Перезапускаем апачи, все, радуемся жизни.

И еще один нюанс, из-за которого долго не мог запустить.
Если у вас установлен ZEND server то ссылка на PHP.INI будет на каталог зенда.
т.е править надо файл, который находится не в папке WINDOWS\php.ini
а именно на каталог зенда \Zend\StudioServer 5.0.0\etc\php.ini

т.е надо сделать файлик phpinfo.php в нем дать одну команду phpinfo();
и смотреть гле лежит php.ini и запустились ли нужные модули.

Удачи!

PS Если у кого тож возникали, нюансы при работе с pspell то пишите сюда.
Пусть будет большая тема. А то сам искал инфу и толком ничего не нашел.
Не будем два раза изобретать велик.
 

deepslam

Новичок
Понял!
Спасибо огромное за разъяснения, но мне к сожалению нужно было, чтобы работало везде, т.к. программу будут использовать на разных хостингах, т.е. не только я локально.

Еще раз огромное спасибо за внятливое объяснение, респект!
 

Aries

Новичок
Тогда только одно, связываться с хостером и просить его собрать PHP
с поддержкой pspell и нужными тебе словарями.
Либо найти одно хостера, который предоставляет такую услугу,
у него разместить скрипт. А потом просто вызывать его из своих программ
непосредственно у этого хостера. Мож и не красиво, но работать будет.
 
Сверху