MediaSearch_Filter_KeyWords
[ class tree: MediaSearch_Filter_KeyWords ] [ index: MediaSearch_Filter_KeyWords ] [ all elements ]

Source for file RemoveNumbers.php

Documentation is available at RemoveNumbers.php

  1. <?php
  2. /**
  3.  * MediaSearch
  4.  *
  5.  * LICENSE
  6.  *
  7.  * "THE BEER-WARE LICENSE" (Revision 42):
  8.  * "Sven Strittmatter" <ausserirdisch@sven-space.de> wrote this file.
  9.  * As long as you retain this notice you can do whatever you want with
  10.  * this stuff. If we meet some day, and you think this stuff is worth it,
  11.  * you can buy me a beer in return.
  12.  *
  13.  * $Author$
  14.  * $Revision$
  15.  *
  16.  * @category    MediaSearch
  17.  * @package     MediaSearch_Filter_KeyWords
  18.  * @copyright   Copyright (c) 2009 Sven Strittmatter
  19.  */
  20.  
  21. /**
  22.  * @see MediaSearch_Filter_KeyWords_Interface
  23.  */
  24. require_once('MediaSearch/Filter/KeyWords/Interface.php');
  25.  
  26. /**
  27.  * Removes numbers or strings containing numbers.
  28.  *
  29.  * @category   MediaSearch
  30.  * @package    MediaSearch_Filter_KeyWords
  31.  * @copyright  Copyright (c) 2009 Sven Strittmatter
  32.  */
  33. class MediaSearch_Filter_KeyWords_RemoveNumbers implements MediaSearch_Filter_KeyWords_Interface {
  34.     const TRACE_LELVEL 35;
  35.  
  36.     /**
  37.      * Instance for singleton.
  38.      *
  39.      * @static
  40.      * @access private
  41.      * @var MediaSearch_Filter_KeyWords_RemoveNumbers 
  42.      */
  43.     private static $instance;
  44.  
  45.     /**
  46.      * Singleton inplementation (see GoF).
  47.      *
  48.      * @access private
  49.      */
  50.     private function __construct({
  51.  
  52.     }
  53.  
  54.     /**
  55.      * Returns th einstance of this class.
  56.      *
  57.      * @static
  58.      * @access public
  59.      * @return MediaSearch_Filter_KeyWords_RemoveNumbers 
  60.      */
  61.     public static function get({
  62.         if (null === self::$instance{
  63.             self::$instance new MediaSearch_Filter_KeyWords_RemoveNumbers();
  64.         }
  65.  
  66.         return self::$instance;
  67.     }
  68.  
  69.     /**
  70.      * Removes any numeric key word string or key word strings containing a number.
  71.      * 
  72.      * @access public
  73.      * @param array $input 
  74.      * @return array 
  75.      */
  76.     public function process(array $input{
  77.         $filtered array();
  78.  
  79.         foreach ($input as $keyword{
  80.             if (is_numeric($keyword)) {
  81.                 continue;
  82.             }
  83.  
  84.             if ($this->containNumber($keyword)) {
  85.                 continue;
  86.             }
  87.  
  88.             $filtered[$keyword;
  89.         }
  90.  
  91.         return $filtered;
  92.     }
  93.  
  94.     /**
  95.      * Indicates whether a string contains a number.
  96.      *
  97.      * @access private
  98.      * @param string $string 
  99.      * @return bool 
  100.      */
  101.     private function containNumber($string{
  102.         for ($i 0$i 10$i++{
  103.             if (false !== strpos($string$i.'')) {
  104.                 return true;
  105.             }
  106.         }
  107.  
  108.         return false;
  109.     }
  110. }

Documentation generated on Mon, 17 Aug 2009 14:53:51 +0200 by phpDocumentor 1.4.2