Как я могу найти общий шаблон между 2 URL

Я хотел бы найти общий шаблон между двумя URL в PHP.
Я играл с https://gist.github.com/chrisbloom7/1021218 но это останавливается на этапе нахождения самого длинного соответствия, не учитывающего подстановочные знаки, которые существуют в URL.

например вот 2 URL

Если я запускаю функцию над ними, мой общий шаблон

http://example.com/collections/

Что я ищу

http://example.com/collections/*/products/

Кто-нибудь знает, как я могу адаптировать код, чтобы он работал, или есть лучший способ?

0

Решение

Вместо регулярных выражений, разделите URL-адреса на / затем сравните каждый элемент массива, затем составьте URL:

$url1 = 'http://example.com/collections/dresses/products/foo/dress.html';
$url2 = 'http://example.com/collections/shoes/products/shoe.html';

$part1 = explode('/', $url1);
$part2 = explode('/', $url2);

$common = array();
$len = count($part1);
if (count($part2) < $len) $len = count($part2);

for ($i = 0; $i < $len-1; $i++) {
if ($part1[$i] == $part2[$i]) {
$common[] = $part1[$i];
} else {
$common[] = '*';
}
}
$out = implode('/', $common);
echo "$out\n";

Выход:

http://example.com/collections/*/products
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]