@@ 113-132 (lines=20) @@ | ||
110 | * @link http://php.net/function.mb-ereg-replace.php |
|
111 | * @link http://php.net/function.mb-ereg-replace-callback.php |
|
112 | */ |
|
113 | public static function replace($pattern, $replacement, $subject, $option = '') |
|
114 | { |
|
115 | static::setUp($pattern); |
|
116 | ||
117 | $replaceMap = self::prepareReplaceMap($pattern, $replacement); |
|
118 | ||
119 | $result = array(); |
|
120 | foreach ((array) $subject as $key => $subjectPart) { |
|
121 | foreach ($replaceMap as $item) { |
|
122 | list($pattern, $replacement) = $item; |
|
123 | ||
124 | $subjectPart = self::execReplace($pattern, $replacement, $subjectPart, $option); |
|
125 | } |
|
126 | $result[$key] = $subjectPart; |
|
127 | } |
|
128 | ||
129 | static::tearDown(); |
|
130 | ||
131 | return (\is_array($subject) ? $result : \reset($result)) ? : $subject; |
|
132 | } |
|
133 | ||
134 | /** |
|
135 | * Regular expression split and return all parts. |
|
@@ 219-243 (lines=25) @@ | ||
216 | * @link http://php.net/function.mb-ereg-replace.php |
|
217 | * @link http://php.net/function.mb-ereg-replace-callback.php |
|
218 | */ |
|
219 | public static function filter($pattern, $replacement, $subject, $option = '') |
|
220 | { |
|
221 | static::setUp($pattern); |
|
222 | ||
223 | $replaceMap = self::prepareReplaceMap($pattern, $replacement); |
|
224 | ||
225 | $result = array(); |
|
226 | foreach ((array) $subject as $key => $subjectPart) { |
|
227 | foreach ($replaceMap as $item) { |
|
228 | list($pattern, $replacement) = $item; |
|
229 | ||
230 | \mb_ereg_search_init($subjectPart, $pattern, $option); |
|
231 | if (!\mb_ereg_search()) { |
|
232 | continue; |
|
233 | } |
|
234 | ||
235 | $subjectPart = self::execReplace($pattern, $replacement, $subjectPart, $option); |
|
236 | $result[$key] = $subjectPart; |
|
237 | } |
|
238 | } |
|
239 | ||
240 | static::tearDown(); |
|
241 | ||
242 | return $result; |
|
243 | } |
|
244 | ||
245 | /** |
|
246 | * Prepare error handler for catching compilation errors. |