|
@@ 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; |