我正在尝试设置一个可以播放youtube视频的小脚本,但除此之外还有点。
我$ytlink
等于www.youtube.com/watch?v=3WAOxKOmR90
但我想让它成为www.youtube.com/embed/3WAOxKOmR90
目前我已尝试
$result = str_replace('https://youtube.com/watch?v=', "https://youtube.com/watch?v=", $ytlink);
但这会将其作为标准返回
我也试过
preg_replace('/https://youtube.com/watch?v=/, '/https://youtube.com/embed/', $ytlink);
但这两个都不起作用。
答案 0 :(得分:1)
我建议将parse_url()与parse_str()一起使用,而不是使用丑陋的正则表达式。这使您可以在想要更改内容或Youtube决定稍微更改其URL的情况下保持灵活性。
$url = 'https://www.youtube.com/watch?v=3WAOxKOmR90';
// Parse the URL into parts
$parsed_url = parse_url($url);
// Get the whole query string
$query = $parsed_url['query'];
// Parse the query string into parts
parse_str($query, $params);
// Get the parameter you want
$v = $params['v'];
// Now re-build the URL how you want
echo $parsed_url['scheme'].'://'.$parsed_url['host'].'/embed/'.$v;
// Outputs: https://www.youtube.com/embed/3WAOxKOmR90
答案 1 :(得分:0)
这有效:
$ytlink = 'www.youtube.com/watch?v=3WAOxKOmR90';
$result = str_replace('watch?v=', 'embed/', $ytlink);
echo $result;
答案 2 :(得分:0)
$url = 'www.youtube.com/watch?v=3WAOxKOmR90';
echo preg_replace('/.*?v=(\w+)/i', 'www.youtube.com/embed/$1', $url);