PHP:单词/短语中的str_replace

时间:2014-04-15 22:29:47

标签: php

我正在尝试设置一个可以播放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);

但这两个都不起作用。

3 个答案:

答案 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);