Как получить ссылки с href="animals.html" в php DOM?

Мои страницы www.example.com/somthing/types.html, www.example.com/somthing2/types.html этот HTML-файл имеет тег<a href="animals.html" . somthing,somthing2это файлы, каждый файл содержит ссылки в types.html и такие файлы, как animals.html в тех же папках. когда я получаю его с dom, он показывает только "animals.html", но я хочу получить "www.example.com/somthing/animals.html". Как я могу удалить types.html с www.example.com/somthing/types.html и поставить www.example.com/somthing+/animals.html.

Мне просто нужен способ удалить "types.html" из www.example.com/somthing/types.html. сохраните папку и удалите последнюю часть после этого "/".

Я не всегда знаю последнюю часть (имя файла), поэтому мне нужен способ удалить последнюю вещь после последней "/". извините за мои языковые проблемы.
str_replace('types.html' ,'','www.example.com/somthing/types.html');для, если я знаю имя файла (types.html).

4 ответа

Вы можете использовать это

preg_replace('/([^\/]*$)/', '', 'www.example.com/somthing/types.html');

Это заменит все символы после последнего /

Выход будет www.example.com/somthing/

Вы также можете сделать это по старинке:

$url = 'www.example.com/somthing/types.html';

$divided = explode( '/', $url );
array_pop( $divided );

$new_url = implode( '/', $divided );
Try this
$string = 'www.examle.com/somthing/types.html';
echo preg_replace('#\/[^/]*$#', '', $string);

Если вы думаете о быстром и быстром, вы можете рассмотреть этот кусок кода вместо preg_replace

$url = explode("/",$url);
array_pop($url);
$url = implode("/",$url);

Опять же это немного быстрее, так что делайте, как вам нравится:).

Пруф: http://sandbox.onlinephpfunctions.com/code/5083e02d4f171502ef1e7c87c8dd9a957ee0d8fb

Другие вопросы по тегам