2014-04-15 37 views
1

我想设置一个小脚本,可以播放YouTube视频,但那有点除了点。PHP:str_replace在一个单词/短语

我有$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); 

但这两个都不起作用。

回答

1

而不是使用正则表达式丑的,我建议使用parse_url()parse_str()。如果您想要改变某些内容或者Youtube决定稍微更改其网址,这可以让您变得更加灵活。

$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 
+0

谢谢。这是一个很好的帮助:) – user3033847

0

这工作:

$ytlink = 'www.youtube.com/watch?v=3WAOxKOmR90'; 
$result = str_replace('watch?v=', 'embed/', $ytlink); 
echo $result; 
0
$url = 'www.youtube.com/watch?v=3WAOxKOmR90';  
echo preg_replace('/.*?v=(\w+)/i', 'www.youtube.com/embed/$1', $url); 
相关问题