如何从 iTunes url 获取 ID?

How to get the ID from itunes url?

我需要从 iTunes url 中获取项目 ID,在 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已经删除了url中的'id'前缀所以上面的代码没有returnid了,有谁知道解决办法吗?

旧 itunes url; https://itunes.apple.com/album/the-endless-bridge-single/id1146508518?uo=1&v0=9989

新 iTunes url; 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

这可以看出有效here.

希望对您有所帮助! :)

使用正则表达式:

<?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_urlbasename 的组合,例如

$musicid = basename(parse_url($musicid, PHP_URL_PATH));

演示~https://eval.in/895029