modifiercompiler.count_words.php 992 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. /**
  3. * Smarty plugin
  4. *
  5. * @package Smarty
  6. * @subpackage PluginsModifierCompiler
  7. */
  8. /**
  9. * Smarty count_words modifier plugin
  10. *
  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. * @param array $params parameters
  18. * @return string with compiled code
  19. */
  20. function smarty_modifiercompiler_count_words($params, $compiler)
  21. {
  22. if (SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) {
  23. // return 'preg_match_all(\'#[\w\pL]+#u\', ' . $params[0] . ', $tmp)';
  24. // expression taken from http://de.php.net/manual/en/function.str-word-count.php#85592
  25. return 'preg_match_all(\'/\p{L}[\p{L}\p{Mn}\p{Pd}\\\'\x{2019}]*/u\', ' . $params[0] . ', $tmp)';
  26. }
  27. // no MBString fallback
  28. return 'str_word_count(' . $params[0] . ')';
  29. }
  30. ?>