我使用以下 preg match
if (preg_match('![?&]{1}v=([^&]+)!', 'youtubeurl' . '&', $m)) $video_id = $m[1];
获取youtube V 值,将其存储在 $ video_id 中,然后将其添加到iframe中;
<iframe width="100%" height="305" src="http://www.youtube.com/embed/<? echo $video_id; ?>?rel=2&autoplay=0" frameborder="0" allowfullscreen></iframe>
在我的网站上加载YouTube视频。我试图对Audiomack使用相同的方法,但它们的URL格式不同。
Audiomack使用以下网址格式;
https://www.audiomack.com/song/famous-dex/annoyed
他们的iframe如下;
<iframe src="https://www.audiomack.com/embed4/famous-dex/annoyed" scrolling="no" width="100%" height="110" scrollbars="no" frameborder="0"></iframe>
如何修改上面的 preg_match 以获取URL中的最后两个字符串以及斜杠,将其存储在变量中,然后从iframe中调用它?
例如。
$url = 'https://www.audiomack.com/song/famous-dex/annoyed';
if (preg_match('![?&]{1}v=([^&]+)!', '$url' . '&', $m)) $audio_id = $m[1];
并且 $ audio_id 的值应该返回 famous-dex / annoyed 然后我可以将它插入到iframe中;
<iframe src="https://www.audiomack.com/embed4/<? echo $audio_id; ?>" scrolling="no" width="100%" height="110" scrollbars="no" frameborder="0"></iframe>
答案 0 :(得分:2)
使用此代码:
$url = 'https://www.audiomack.com/embed4/famous-dex/annoyed';
if (preg_match('/.+\/(.+\/.+)$/', $url, $matches)) {
$audio_id = $matches[1];
echo $audio_id; // gives you famous-dex/annoyed
}
如果没有“$”,搜索将会失败,因为在这种情况下,它会强制搜索“从最后开始,向后”。