Переписать URL-адрес Youtube - PullRequest
       34

Переписать URL-адрес Youtube

1 голос
/ 16 декабря 2011

У меня есть несколько URL-адресов YouTube, хранящихся в базе данных, которые мне нужно переписать.

Они хранятся в следующем формате:

$http://youtu.be/IkZuQ-aTIs0

Мне нужно переписать их, чтобы посмотретькак это:

$http://youtube.com/v/IkZuQ-aTIs0

Эти значения хранятся в виде переменной $ VideoType

Я называю переменную так:

$<?php if ($video['VideoType']){
$echo "<a rel=\"shadowbox;width=700;height=400;player=swf\" href=\"" . $video['VideoType'] . "\">View Video</a>";
$}?>

Как мне переписать их?

Спасибо за помощь.

Ответы [ 2 ]

5 голосов
/ 16 декабря 2011

Вы хотите использовать функцию preg_replace:

Что-то вроде:

$oldurl = 'youtu.be/blah';
$pattern = '/youtu.be/';
$replacement = 'youtube.com/v';
$newurl = preg_replace($pattern, $replacement, $string);
1 голос
/ 16 декабря 2011

Вы можете использовать регулярное выражение, чтобы сделать это для вас. Если в вашей базе данных хранятся ТОЛЬКО URL-адреса YouTube, то будет достаточно взять часть после последней косой черты 'IkZuQaTIs0' и поместить ее в атрибут src после 'http://www.youtube.com/'.

Для этого простого решения сделайте что-то вроде этого:

<?php 
    if ($video['VideoType']) {
        $last_slash_position = strrpos($video['VideoType'], "/");
        $youtube_url_code    = substr($video['VideoType'], $last_slash_position);
        echo "<a rel=\"shadowbox;width=700;height=400;player=swf\" 
                 href=\"http://www.youtube.com/".$youtube_url_code."\">
                 View Video</a>";
    }
?>

В данный момент я не могу проверить это, может быть, вы можете попробовать поэкспериментировать с положением последнего появления косой черты и т. Д. Вы также можете взглянуть на определения функций:

http://www.php.net/manual/en/function.substr.php

http://www.php.net/manual/en/function.strrpos.php

Однако следует помнить о производительности. Создайте скрипт, который обрабатывает вашу базу данных и преобразует каждый URL или сохраняет короткий и длинный URL в каждой записи. Потому что регулярные выражения в представлении никогда не являются хорошей идеей.

ОБНОВЛЕНИЕ: было бы даже лучше хранить ТОЛЬКО идентификатор видео / код URL YouTube в базе данных для каждой записи, поэтому в случае примера это будет IkZuQ-aTIs0.

...