Мне нужно получить идентификатор элемента из URL-адреса iTunes, и он работал до того, как itunes изменила структуру URL-адреса;
$musicid = 'https://itunes.apple.com/album/the-endless-bridge-single/id1146508518?uo=1&v0=9989';
$musicid=explode('/id',$musicid);
$musicid=explode('?',$musicid[1]);
echo $musicid[0];
Но теперь iTunes удалил префикс «id» в URL, поэтому приведенный выше код больше не возвращает идентификатор, кто-нибудь знает решение?
старый itunes URL; https://itunes.apple.com/album/the-endless-bridge-single/id1146508518?uo=1&v0 = 9989
URL новой ITunes; https://itunes.apple.com/album/the-endless-bridge-single/1146508518?uo=1&v0 = 9989
Вы бы просто взорвались на четвертой косой, схватив пятый сегмент.
Просто удалить id
от /id
(чтобы ты explode()
на /
) и проверьте шестой индекс вместо второго (с [5]
вместо [1]
):
<?php
$musicid = 'https://itunes.apple.com/album/the-endless-bridge-single/1146508518?uo=1&v0=9989';
$musicid = explode('/', $musicid);
$musicid = explode('?', $musicid[5]);
echo $musicid[0]; // 1146508518
Это видно работает Вот.
Надеюсь это поможет! 🙂
Используйте регулярное выражение:
<?php
$url = 'https://itunes.apple.com/album/the-endless-bridge-single/1146508518?uo=1&v0=9989';
preg_match('/album\/[^\/]+\/(\d+)\?/', $url, $matches);
var_dump($matches[1]);
Демо здесь: https://3v4l.org/tF9pS
Похоже, вы можете просто использовать комбинацию parse_url
а также basename
например,
$musicid = basename(parse_url($musicid, PHP_URL_PATH));
Демо ~ https://eval.in/895029