2014-01-14 7 views
1

Я пытаюсь Зачаровать библиотеку заклинаний.Php, enchant library, как выбрать словарь (например, aspell или myspell)

У меня есть сценарий, который прекрасно работает, но я мог бы выбирать между несколькими словарями (Aspell или MySpell)

Так как я попробовал эту функцию enchant_broker_set_dict_path, но, кажется, не имеют никакого эффекта. И эта функция не в phpdoc, Почему?

Пробовал на Linux с PHP 5.3

Вот мой сценарий

$words=array('test', 'test'); 

$suggestions = array(); 
$enchant = enchant_broker_init(); 

if (enchant_broker_dict_exists($enchant, $lang)) { 
     $dict = enchant_broker_request_dict($enchant, $lang); 

     foreach ($words as $word) { 
      $correct = enchant_dict_check($dict, $word); 
      if (!$correct) { 
       $suggs = enchant_dict_suggest($dict, $word); 

       if (!is_array($suggs)) { 
        $suggs = array(); 
       } 
       $suggestions[$word] = $suggs; 
      } 
     } 
     enchant_broker_free_dict($dict); 
     enchant_broker_free($enchant); 
    } else { 
     enchant_broker_free($enchant); 
     throw new Exception("Could not find dictionary. Code: " . $lang); 
    } 

ответ

0

Php должен быть включен php_enchant продление для того, чтобы использовать эти функции.

Используйте php.ini для настройки php для включения этого расширения.

если вы на окнах, то добавьте расширение = php_enchant.dll в свой файл php.ini.

Также документация или команды Чары находятся на http://www.php.net/manual/en/function.enchant-broker-init.php

0

Где именно вы используете его в коде?
Была ошибка, если вы вызвали enchant_broker_get_dict_path до enchant_broker_set_dict_path, это не сработало.
Кроме того, это может помочь: http://blog.iwanluijks.nl/?!=/post/1-using-enchant-with-php-on-windowspart-1.html

При использовании PECL обратите внимание на то, что вам нужна версия 1.1.0 или выше, так как enchant_broker_set_dict_path и enchant_broker_get_dict_path были включены в эту версию.
http://pecl.php.net/package/enchant/1.1.0