| 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: | |