2013-09-22 3 views
0

Я хотел бы знать, как изменить шаблон строки во что-то другое. Я создаю небольшой форум и хочу вставлять видео youtube всякий раз, когда кто-то входит в ссылку в текстовую часть форума. Youtube видео-ссылки выглядят так:Изменение строки в php

https://www.youtube.com/watch?v=examplevideo 

Но, я хотел бы изменить эту строку, чтобы выглядеть так;

<iframe width="420" height="315" 
src="https://www.youtube.com/embed/examplevideo"> 
</iframe> 

Итак, я бы заменил все, кроме строки «examplevideo». Поскольку эта ссылка будет включена в другой текст из части textarea формы, я предполагаю, что мне нужно было бы установить оператор if, чтобы искать что-нибудь, что говорит «https://www.youtube.com/watch?v=« Использую ли я для этого сравнение строк? Как это будет работать?

+1

Вы не можете использовать: [str_replace] (http://php.net/manual/en/function.str-replace.php)? –

+0

Вы не просто заменяете, вы также добавляете html вокруг него. – Kimomaru

ответ

3

Предполагая, что вы хотите, чтобы повторить результат:

if(strpos($url,"youtube.com/watch?v=")){ 
    echo '<iframe width="420" height="315" src="'; 
    echo str_replace('/watch?v=','/embed/',$url); 
    echo '"></iframe>'; 
}else{ 
    echo $url; 
} 

strpos руководство: http://php.net/manual/en/function.strpos.php
str_replace руководство: http://php.net/manual/en/function.str-replace.php

+0

Спасибо, Мусман! Очень полезно. – Kimomaru

+0

@ Kimomaru Я добавил 'str_replace', чтобы вместо этого использовать url embed. – Mooseman

2

Простое решение регулярное выражение, чтобы получить все после ?v=

$video_name = preg_replace('/^.*\?v=/', '', 'https://www.youtube.com/watch?v=examplevideo'); 
1

Я бы предложите использовать Regu LAR выражения:

// $url is 'https://www.youtube.com/embed/examplevideo' 
$url = preg_replace('/https?\:\/\/www.youtube.com/watch\?v=(.*)/i', 'https://www.youtube.com/embed/$1', $url); 

Что это делает, он ищет строку, начиная с «http://www.youtube.com/watch?v=» (я добавил так, чтобы он соответствовал как HTTP и HTTPS «?»), берет то, что следует и добавляет это ' https://www.youtube.com/embed/ '.

Смежные вопросы