Задать вопрос
@Waksim

Как разбить ссылку на название файла и адрес?

Цикл перебирает ссылки по классу на странице и записывает значение href в массив,
к примеру мы имеем значения: (ссылки fake)

https://toster.ru/foto/cool/432rejfio23.jpg
https://toster.ru/foto/f923jiwe.gif
https://toster.ru/foto/new/1423.png
https://toster.ru/foto/123a.jpg

Возможно ли разобрать эти ссылки так, чтобы в одну переменную шёл адрес (https://toster.ru/foto/), а в другую - название файла (f923jiwe.gif) и так для всех - одним универсальным кодом. Чтобы подходило под все ссылки на фотки, тк их много с разными адресами и названиями?
Выручайте! Ничего не нашёл по этой теме в интернете. Хотелось бы знать - возможно ли это на JS, J, PHP, или любых других языках, которые можно использовать в сайтах. Если да то как? Заранее всем спасибо!
  • Вопрос задан
  • 203 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 2
DevMan
@DevMan
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега JavaScript
JS:

const [ , path, file ] = /(.+\/)([^\/]+)$/.exec(str);

// или

const i = str.lastIndexOf('/') + 1;
const file = str.slice(i);
const path = str.slice(0, i);

// или

const parts = str.split(/(\/)/);
const file = parts.pop();
const path = parts.join('');

PHP:

preg_match('~^(.+\/)([^\/]+)$~', $str, $matches);
list($path, $file) = array_slice($matches, 1);

// или

$i = strrpos($str, '/') + 1;
$file = substr($str, $i);
$path = substr($str, 0, $i);

// или

$parts = preg_split('~(?<=\/)~', $str);
$file = array_pop($parts);
$path = implode('', $parts);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы