- implode: documentation ( source)
- explode: documentation ( source)
- preg_quote: documentation ( source)
- array_pop: documentation ( source)
<?php
// Everything you enter here will be executed by our servers. Try it!
$wildcard = '*';
$urlParts = array(
'path' => 'example.com/sub/path/wildcard/*'
);
$patternParts = explode($wildcard, $urlParts['path']);
foreach ($patternParts as &$pPart) {
$pPart = preg_quote($pPart, '/');
}
unset($pPart);
//Случай, когда * находится в конце строки - возможны любые вложенные пути
if ($patternParts[count($patternParts)] = '') {
array_pop($patternParts);
if (count($patternParts) > 1) {
$pattern = implode('\w+', $patternParts);
}
else {
$pattern = $patternParts[0];
}
$pattern.= '[\w\/]+';
}
else {
$pattern = implode('\w+', $patternParts);
}
$pattern = '/^' . $pattern . '$/im';