Редакция 2 | Только различия | Учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS
Редакция 2 | Редакция 296 | ||
---|---|---|---|
1 | <?php
|
1 | <?php
|
2 | /**
|
2 | /**
|
3 | * Smarty plugin
|
3 | * Smarty plugin
|
4 | * @package Smarty
|
4 | * @package Smarty
|
5 | * @subpackage plugins
|
5 | * @subpackage plugins
|
6 | */
|
6 | */
|
7 | 7 | ||
8 | 8 | ||
9 | /**
|
9 | /**
|
10 | * Smarty count_words modifier plugin
|
10 | * Smarty count_words modifier plugin
|
11 | *
|
11 | *
|
12 | * Type: modifier<br>
|
12 | * Type: modifier<br>
|
13 | * Name: count_words<br>
|
13 | * Name: count_words<br>
|
14 | * Purpose: count the number of words in a text
|
14 | * Purpose: count the number of words in a text
|
15 | * @link http://smarty.php.net/manual/en/language.modifier.count.words.php
|
15 | * @link http://smarty.php.net/manual/en/language.modifier.count.words.php
|
16 | * count_words (Smarty online manual)
|
16 | * count_words (Smarty online manual)
|
17 | * @author Monte Ohrt <monte at ohrt dot com>
|
17 | * @author Monte Ohrt <monte at ohrt dot com>
|
18 | * @param string
|
18 | * @param string
|
19 | * @return integer
|
19 | * @return integer
|
20 | */
|
20 | */
|
21 | function smarty_modifier_count_words($string) |
21 | function smarty_modifier_count_words($string) |
22 | {
|
22 | {
|
23 | // split text by ' ',\r,\n,\f,\t
|
23 | // split text by ' ',\r,\n,\f,\t
|
24 | $split_array = preg_split('/\s+/',$string); |
24 | $split_array = preg_split('/\s+/',$string); |
25 | // count matches that contain alphanumerics
|
25 | // count matches that contain alphanumerics
|
26 | $word_count = preg_grep('/[a-zA-Z0-9\\x80-\\xff]/', $split_array); |
26 | $word_count = preg_grep('/[a-zA-Z0-9\\x80-\\xff]/', $split_array); |
27 | 27 | ||
28 | return count($word_count); |
28 | return count($word_count); |
29 | }
|
29 | }
|
30 | 30 | ||
31 | /* vim: set expandtab: */
|
31 | /* vim: set expandtab: */
|
32 | 32 | ||
33 | ?>
|
33 | ?>
|
34 | 34 |