使用preg_relace更改url youtube时出错?

时间:2013-08-05 02:55:42

标签: php

我有一个示例代码:

<?php
$url = 'http://www.youtube.com/watch?v=KTRPVo0d90w';
$pattern = '/http:\/\/www\.youtube\.com\/watch\?(.*?)v=([a-zA-Z0-9_\-]+)(\S*)/i';
$replace = $pattern.'&w=550';
$string = preg_replace($pattern, $replace, $url);
?>

如何结果是http://www.youtube.com/watch?v=KTRPVo0d90w&w=550

4 个答案:

答案 0 :(得分:2)

您只需使用.运算符附加:

<?php
$url = 'http://www.youtube.com/watch?v=KTRPVo0d90w';
$string = $url.'&w=550';
?>

答案 1 :(得分:0)

改为使用preg_match

<?php
    $url = 'http://www.youtube.com/watch?v=KTRPVo0d90w&s=222';
    $pattern = '/v=[^&]+/i';
    preg_match($pattern, $url, $match);
    echo 'http://www.youtube.com/watch?'.$match[0].'&w=550';
?>

答案 2 :(得分:0)

不要误会我,我不打算在这里获得任何积分,但我想我会添加这个问题并包含一些选项。我喜欢偶尔玩弄这样的想法。

使用jh314's想法连接字符串,认为这可以用于将来使用,实际上替换视频的YouTube号码中的字符串,如果有机会出现的话。

例如$number

<?php

$url = 'http://www.youtube.com/watch?v=';
$number = 'KTRPVo0d90w';
$string = $url.$number.'&w=550';

// Output to screen
echo $string;

echo "<br>";

// Link to video
echo "<a href=\"$string\">Click for the video</a>";

?>

视频宽度可以轻松完成。

答案 3 :(得分:0)

如下所示?

$url = 'http://www.youtube.com/watch?v=KTRPVo0d90w';
$bit = '&w=550';
echo "${url}${bit}";