b2evolution

Multilingual multiuser multiblog engine

b2evolution Technical Documentation (CVS HEAD) [ class tree: main ] [ index: main ] [ all elements ]

Source for file PSpell.php

Documentation is available at PSpell.php

  1. <?php
  2. /**
  3.  * $Id: PSpell.php,v 1.1 2009/08/07 01:59:36 sam2kb Exp $
  4.  *
  5.  * @author Moxiecode
  6.  * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
  7.  */
  8.  
  9. class PSpell extends SpellChecker {
  10.     /**
  11.      * Spellchecks an array of words.
  12.      *
  13.      * @param {String} $lang Language code like sv or en.
  14.      * @param {Array} $words Array of words to spellcheck.
  15.      * @return {Array} Array of misspelled words.
  16.      */
  17.     function &checkWords($lang$words{
  18.         $plink $this->_getPLink($lang);
  19.  
  20.         $outWords array();
  21.         foreach ($words as $word{
  22.             if (!pspell_check($plinktrim($word)))
  23.                 $outWords[utf8_encode($word);
  24.         }
  25.  
  26.         return $outWords;
  27.     }
  28.  
  29.     /**
  30.      * Returns suggestions of for a specific word.
  31.      *
  32.      * @param {String} $lang Language code like sv or en.
  33.      * @param {String} $word Specific word to get suggestions for.
  34.      * @return {Array} Array of suggestions for the specified word.
  35.      */
  36.     function &getSuggestions($lang$word{
  37.         $words pspell_suggest($this->_getPLink($lang)$word);
  38.  
  39.         for ($i=0$i<count($words)$i++)
  40.             $words[$iutf8_encode($words[$i]);
  41.  
  42.         return $words;
  43.     }
  44.  
  45.     /**
  46.      * Opens a link for pspell.
  47.      */
  48.     function &_getPLink($lang{
  49.         // Check for native PSpell support
  50.         if (!function_exists("pspell_new"))
  51.             $this->throwError("PSpell support not found in PHP installation.");
  52.  
  53.         // Setup PSpell link
  54.         $plink pspell_new(
  55.             $lang,
  56.             $this->_config['PSpell.spelling'],
  57.             $this->_config['PSpell.jargon'],
  58.             $this->_config['PSpell.encoding'],
  59.             $this->_config['PSpell.mode']
  60.         );
  61.  
  62.         // Setup PSpell link
  63. /*        if (!$plink) {
  64.             $pspellConfig = pspell_config_create(
  65.                 $lang,
  66.                 $this->_config['PSpell.spelling'],
  67.                 $this->_config['PSpell.jargon'],
  68.                 $this->_config['PSpell.encoding']
  69.             );
  70.  
  71.             $plink = pspell_new_config($pspell_config);
  72.         }*/
  73.  
  74.         if (!$plink)
  75.             $this->throwError("No PSpell link found opened.");
  76.  
  77.         return $plink;
  78.     }
  79. }
  80.  
  81. ?>

Documentation generated on Sat, 06 Mar 2010 03:57:01 +0100 by phpDocumentor 1.4.2. This site is hosted and maintained by Daniel HAHLER (Contact).