@@ 301-316 (lines=16) @@ | ||
298 | $pattern_string = '/^(?<string>[^|]+)(?<parameter_bag>\|\{(\s?%[a-zA-Z0-9.]+%:\s[a-zA-Z0-9.]+,?\s?)+\s?\}\|)\s*$/'; |
|
299 | $pattern_params = '/(?>(?<=(\|\{\s|.,\s))%(?<key>[a-zA-Z0-9.]+)%:\s(?<value>[a-zA-Z0-9.]+)(?=(,\s.|\s\}\|)))+/'; |
|
300 | ||
301 | if (preg_match($pattern_string, $subject, $match_string)) { |
|
302 | $string = $match_string['string']; |
|
303 | $parameter_bag = $match_string['parameter_bag']; |
|
304 | ||
305 | $param = array(); |
|
306 | preg_match_all($pattern_params, $parameter_bag, $match_params, PREG_SET_ORDER); |
|
307 | ||
308 | foreach ($match_params as $match) { |
|
309 | $param[$match['key']] = $match['value']; |
|
310 | } |
|
311 | ||
312 | return array( |
|
313 | 'string' => $string, |
|
314 | 'params' => $param |
|
315 | ); |
|
316 | } |
|
317 | ||
318 | # Feature - read abbreviated syntax parameters |
|
319 | $abbreviated_pattern_string = '/^(?<string>[^|]+)(?<parameter_bag>\|\{(\s?[a-zA-Z0-9.]+,?\s?)+\s?\}\|)\s*$/'; |
|
@@ 322-337 (lines=16) @@ | ||
319 | $abbreviated_pattern_string = '/^(?<string>[^|]+)(?<parameter_bag>\|\{(\s?[a-zA-Z0-9.]+,?\s?)+\s?\}\|)\s*$/'; |
|
320 | $abbreviated_pattern_params = '/(?>(?<=(\|\{\s|.,\s))(?<param>[a-zA-Z0-9.]+)(?=(,\s.|\s\}\|)))+?/'; |
|
321 | ||
322 | if (preg_match($abbreviated_pattern_string, $subject, $match_string)) { |
|
323 | $string = $match_string['string']; |
|
324 | $parameter_bag = $match_string['parameter_bag']; |
|
325 | ||
326 | $param = array(); |
|
327 | preg_match_all($abbreviated_pattern_params, $parameter_bag, $match_params); |
|
328 | ||
329 | foreach ($match_params['param'] as $value) { |
|
330 | $param[$value] = $value; |
|
331 | } |
|
332 | ||
333 | return array( |
|
334 | 'string' => $string, |
|
335 | 'params' => $param |
|
336 | ); |
|
337 | } |
|
338 | ||
339 | // If subject does not match any pattern, return false |
|
340 | return false; |