Как удалить первую часть URL в PHP?

#php #regex #preg-replace

#php #регулярное выражение #preg-заменить

Вопрос:

Я хочу удалить первую часть URL в PHP. Пример:

 http://www.domain.com/sales
http://otherdomain.org/myfolder/seconddir
/directory
  

должно быть:

 /sales
/myfolder/seconddir
/directory
  

Поскольку URL-адрес динамический, я думаю, мне нужно сделать это с помощью preg replace, но я не знаю как .. И иногда URL-адрес уже удален (см. Последний пример).
Как это сделать?

Комментарии:

1. Откуда берутся эти URL-адреса?

2. Из формы ввода.. Но приведенный ниже метод с parse_url сработал для меня! Спасибо.

3. @user735795: Тогда вы должны принять это (установите флажок рядом с наиболее полезным ответом).

Ответ №1:

Для этого в php есть встроенная функция parse_url.

Со связанного веб-сайта:

 <?php
$url = 'http://username:password@hostname/path?arg=value#anchor';

print_r(parse_url($url));

echo parse_url($url, PHP_URL_PATH);
?>
  

Приведенный выше пример выведет:

 Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)
/path
  

Комментарии:

1. Обратите внимание, что это не будет работать для URL-адресов, которые не содержат scheme для ex. www.otherdomain.org/myfolder/seconddir

Ответ №2:

Попробуйте:

 <?php
$url = 'http://otherdomain.org/myfolder/seconddir';
$urlParts = parse_url($url);

print_r($urlParts);
  

И взгляните на:

http://php.net/manual/en/function.parse-url.php

Ответ №3:

вы могли бы использовать информацию о пути:

 <?php
print_r(pathinfo("http://www.domain.com/sales"));
print_r(pathinfo("http://otherdomain.org/myfolder/seconddir"));
print_r(pathinfo("/directory"));
?>
  

вывод:

 Array
(
    [dirname] => http://www.domain.com
    [basename] => sales
    [filename] => sales
)
Array
(
    [dirname] => http://otherdomain.org/myfolder
    [basename] => seconddir
    [filename] => seconddir
)
Array
(
    [dirname] => /
    [basename] => directory
    [filename] => directory
)
  

удачи!