gpt4 book ai didi

php - 自动解析 Youtube 链接

转载 作者:可可西里 更新时间:2023-11-01 12:35:51 26 4
gpt4 key购买 nike

$message = preg_replace("#(http://(www.)?youtube.com)?/(v/|watch\?v\=)([-|~_0-9A-Za-z]+)&?.*?#i", "<iframe title=\"YouTube\" width=\"480\" height=\"390\" src=\"http://www.youtube.com/embed/$4\" frameborder=\"0\" allowfullscreen></iframe>", $message);

如果 youtube 链接看起来像这样,这很好用:

http://www.youtube.com/watch?v=9DhSwsbKJQ4

但是如果 Youtube 链接是这样的,那就有问题了:

http://www.youtube.com/watch?v=9DhSwsbKJQ4&feature=topvideos_music

结果是 iframe 和 iframe 之后的文本 feature=topvideos_music。有什么办法可以删除 Youtube 链接中 & 之后的所有内容吗?

最佳答案

你为什么不使用 parse_url()parse_str()职能?这是一个更安全的解决方案。

$url = 'http://www.youtube.com/watch?v=9DhSwsbKJQ4&feature=topvideos_music';
// $url = 'http://www.youtube.com/v/9DhSwsbKJQ4?feature=topvideos_music';

$parsedUrl = parse_url($url);
parse_str($parsedUrl['query'], $parsedQueryString);

// URL in ?v=... form
if (isset($parsedQueryString['v'])) {
$id = $parsedQueryString['v'];
}
// URL in /v/... form
else if (substr($parsedUrl['path'], 0, 3) == '/v/') {
$id = substr($parsedUrl['path'], 3);
}
// invalid form
else {
throw new ...;
}

关于php - 自动解析 Youtube 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6266643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com