| 139 | root | 1 | <?php | 
      
        |  |  | 2 | // +----------------------------------------------------------------------+ | 
      
        |  |  | 3 | // | PHP Version 4                                                        | | 
      
        |  |  | 4 | // +----------------------------------------------------------------------+ | 
      
        |  |  | 5 | // | Copyright (c) 1997-2004 The PHP Group                                | | 
      
        |  |  | 6 | // +----------------------------------------------------------------------+ | 
      
        |  |  | 7 | // | This source file is subject to version 3.0 of the PHP license,       | | 
      
        |  |  | 8 | // | that is bundled with this package in the file LICENSE, and is        | | 
      
        |  |  | 9 | // | available at through the world-wide-web at                           | | 
      
        |  |  | 10 | // | http://www.php.net/license/3_0.txt.                                  | | 
      
        |  |  | 11 | // | If you did not receive a copy of the PHP license and are unable to   | | 
      
        |  |  | 12 | // | obtain it through the world-wide-web, please send a note to          | | 
      
        |  |  | 13 | // | license@php.net so we can mail you a copy immediately.               | | 
      
        |  |  | 14 | // +----------------------------------------------------------------------+ | 
      
        |  |  | 15 | // | Authors: Aidan Lister <aidan@php.net>                                | | 
      
        |  |  | 16 | // +----------------------------------------------------------------------+ | 
      
        |  |  | 17 | // | 
      
        |  |  | 18 | // $Id: str_word_count.php,v 1.9 2005/02/28 11:45:28 aidan Exp $ | 
      
        |  |  | 19 |  | 
      
        |  |  | 20 |  | 
      
        |  |  | 21 | /** | 
      
        |  |  | 22 |  * Replace str_word_count() | 
      
        |  |  | 23 |  * | 
      
        |  |  | 24 |  * @category    PHP | 
      
        |  |  | 25 |  * @package     PHP_Compat | 
      
        |  |  | 26 |  * @link        http://php.net/function.str_word_count | 
      
        |  |  | 27 |  * @author      Aidan Lister <aidan@php.net> | 
      
        |  |  | 28 |  * @version     $Revision: 1.9 $ | 
      
        |  |  | 29 |  * @since       PHP 4.3.0 | 
      
        |  |  | 30 |  * @require     PHP 4.0.0 (user_error) | 
      
        |  |  | 31 |  */ | 
      
        |  |  | 32 | if (!function_exists('str_word_count')) { | 
      
        |  |  | 33 |     function str_word_count($string, $format = null) | 
      
        |  |  | 34 |     { | 
      
        |  |  | 35 |         if ($format !== 1 && $format !== 2 && $format !== null) { | 
      
        |  |  | 36 |             user_error('str_word_count() The specified format parameter, "' . $format . '" is invalid', | 
      
        |  |  | 37 |                 E_USER_WARNING); | 
      
        |  |  | 38 |             return false; | 
      
        |  |  | 39 |         } | 
      
        |  |  | 40 |  | 
      
        |  |  | 41 |         $word_string = preg_replace('/[0-9]+/', '', $string); | 
      
        |  |  | 42 |         $word_array  = preg_split('/[^A-Za-z0-9_\']+/', $word_string, -1, PREG_SPLIT_NO_EMPTY); | 
      
        |  |  | 43 |  | 
      
        |  |  | 44 |         switch ($format) { | 
      
        |  |  | 45 |             case null: | 
      
        |  |  | 46 |                 $result = count($word_array); | 
      
        |  |  | 47 |                 break; | 
      
        |  |  | 48 |  | 
      
        |  |  | 49 |             case 1: | 
      
        |  |  | 50 |                 $result = $word_array; | 
      
        |  |  | 51 |                 break; | 
      
        |  |  | 52 |  | 
      
        |  |  | 53 |             case 2: | 
      
        |  |  | 54 |                 $lastmatch = 0; | 
      
        |  |  | 55 |                 $word_assoc = array(); | 
      
        |  |  | 56 |                 foreach ($word_array as $word) { | 
      
        |  |  | 57 |                     $word_assoc[$lastmatch = strpos($string, $word, $lastmatch)] = $word; | 
      
        |  |  | 58 |                     $lastmatch += strlen($word); | 
      
        |  |  | 59 |                 } | 
      
        |  |  | 60 |                 $result = $word_assoc; | 
      
        |  |  | 61 |                 break; | 
      
        |  |  | 62 |         } | 
      
        |  |  | 63 |  | 
      
        |  |  | 64 |         return $result; | 
      
        |  |  | 65 |     } | 
      
        |  |  | 66 | } | 
      
        |  |  | 67 |  | 
      
        | 130 | kaklik | 68 | ?> |