1: | <?php
|
2: | |
3: | |
4: | |
5: | |
6: | |
7: |
|
8: | |
9: | |
10: | |
11: | |
12: | |
13: | |
14: | |
15: | |
16: | |
17: | |
18: | |
19: | |
20: | |
21: | |
22: | |
23: | |
24: |
|
25: | function smarty_modifier_regex_replace($string, $search, $replace, $limit = -1)
|
26: | {
|
27: | if (is_array($search)) {
|
28: | foreach ($search as $idx => $s) {
|
29: | $search[ $idx ] = _smarty_regex_replace_check($s);
|
30: | }
|
31: | } else {
|
32: | $search = _smarty_regex_replace_check($search);
|
33: | }
|
34: | return preg_replace($search, $replace, $string, $limit);
|
35: | }
|
36: |
|
37: | |
38: | |
39: | |
40: | |
41: | |
42: |
|
43: | function _smarty_regex_replace_check($search)
|
44: | {
|
45: |
|
46: |
|
47: | if (($pos = strpos($search, "\0")) !== false) {
|
48: | $search = substr($search, 0, $pos);
|
49: | }
|
50: |
|
51: | if (preg_match('!([a-zA-Z\s]+)$!s', $search, $match) && (strpos($match[ 1 ], 'e') !== false)) {
|
52: | $search = substr($search, 0, -strlen($match[ 1 ])) . preg_replace('![e\s]+!', '', $match[ 1 ]);
|
53: | }
|
54: | return $search;
|
55: | }
|
56: | |