@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, или любых других языках, которые можно использовать в сайтах. Если да то как? Заранее всем спасибо!
  • Вопрос задан
  • 194 просмотра
Решения вопроса 2
DevMan
@DevMan
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега JavaScript
1. Можно порезать регулярными выражениями. JS, например:

[
  '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'
].map(function(n) {
  const [ , path, file ] = /(.+\/)([^\/]+)$/.exec(n);
  return { file, path };
});

2. Можно резать строку по позиции последнего "/":

[
  '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'
].map(function(n) {
  const lastSlash = n.lastIndexOf('/') + 1;
  return {
    file: n.slice(lastSlash),
    path: n.slice(0, lastSlash)
  };
});

На PHP будет примерно то же самое.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы