library/smarty/libs/plugins/modifiercompiler.count_words.php
changeset 46 f11c31f7fa3e
parent 45 a56e7f9a0463
child 47 03388ec805b4
equal deleted inserted replaced
45:a56e7f9a0463 46:f11c31f7fa3e
     1 <?php
       
     2 /**
       
     3  * Smarty plugin
       
     4  *
       
     5  * @package    Smarty
       
     6  * @subpackage PluginsModifierCompiler
       
     7  */
       
     8 
       
     9 /**
       
    10  * Smarty count_words modifier plugin
       
    11  * Type:     modifier<br>
       
    12  * Name:     count_words<br>
       
    13  * Purpose:  count the number of words in a text
       
    14  *
       
    15  * @link   http://www.smarty.net/manual/en/language.modifier.count.words.php count_words (Smarty online manual)
       
    16  * @author Uwe Tews
       
    17  *
       
    18  * @param array $params parameters
       
    19  *
       
    20  * @return string with compiled code
       
    21  */
       
    22 function smarty_modifiercompiler_count_words($params) {
       
    23     if (Smarty::$_MBSTRING) {
       
    24         // return 'preg_match_all(\'#[\w\pL]+#' . Smarty::$_UTF8_MODIFIER . '\', ' . $params[0] . ', $tmp)';
       
    25         // expression taken from http://de.php.net/manual/en/function.str-word-count.php#85592
       
    26         return 'preg_match_all(\'/\p{L}[\p{L}\p{Mn}\p{Pd}\\\'\x{2019}]*/' . Smarty::$_UTF8_MODIFIER . '\', ' . $params[0] . ', $tmp)';
       
    27     }
       
    28     // no MBString fallback
       
    29     return 'str_word_count(' . $params[0] . ')';
       
    30 }