2014-04-15 36 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); 
相關問題