Как получить часть URL? - PullRequest
0 голосов
/ 29 мая 2019

Как я могу удалить все части из URL, кроме базового URL и первой части.Нет уверенности в количестве деталей.Базовый URL является переменным.Я попробовал некоторые регулярные выражения, но тщетно.

$url =  http://www.example.com/part1/part2/part3/part4;
base_url = parse_url($url, PHP_URL_HOST); // Outputs www.example.com

$desired_output = http://www.example.com/part1;

1 Ответ

5 голосов
/ 29 мая 2019

Здесь мы можем использовать preg_replace, с простым выражением, возможно, похожим на:

(.+\.com\/.+?\/).+

где мы собираем желаемый результат, используя эту группу захвата:

(.+\.com\/.+?\/)

и затем проведите пальцем до конца строки и замените его на $1.

Тест

$re = '/(.+\.com\/.+?\/).+/m';
$str = 'http://www.example.com/part1/part2/part3/part4';
$subst = '$1';

$result = preg_replace($re, $subst, $str);

echo $result;

DEMO

RegEx Circuit

jex.im визуализирует регулярные выражения:

enter image description here


Для всех доменов .com или нет, мы могли бы решить это с помощью следующего выражения:

(.+\..+?\/.+?\/).+

Test

$re = '/(.+\..+?\/.+?\/).+/m';
$str = 'http://www.example.com/part1/part2/part3/part4';
$subst = '$1';

$result = preg_replace($re, $subst, $str);

echo $result;

Демо

...