Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Регулярные выражения. Замена кода плеера YouTube на ссылку YouTube / 4 сообщений из 4, страница 1 из 1
21.08.2015, 16:21
    #39034109
Хима
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения. Замена кода плеера YouTube на ссылку YouTube
Всем привет. Помогите, пожалуйста, решить такую проблемку в регулярных выражениях.

Есть код YouTube, допустим вот:

Код: sql
1.
<iframe width="560" height="315" src="https://www.youtube.com/embed/CYb4ynuEPi4" frameborder="0" allowfullscreen></iframe>



Его надо превратить в:

Код: sql
1.
<a href="https://www.youtube.com/watch?v=CYb4ynuEPi4">Смотреть видео</a>



Т.е. код с плеером превратить в ссылку.

Частично работает такой код:

Код: sql
1.
$html = preg_replace('#<iframe[^<]+src="[^<]+www.youtube.com/embed/[^<]+</iframe>#is', '<a href="https://www.youtube.com/watch?v=">Смотреть видео</a>', $html);



Замена происходит. Но как в данном случае вытащить пресловутый ID, идущий после /embed/ и вставить его после ?v= в ссылку?

Спасибо.
...
Рейтинг: 0 / 0
21.08.2015, 17:34
    #39034159
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения. Замена кода плеера YouTube на ссылку YouTube
Хима,
Код: php
1.
$html = preg_replace('#<iframe[^<]+src="[^<]+www.youtube.com/embed/(\w+)[^<]+</iframe>#is', '<a href="https://www.youtube.com/watch?v=${1}">Смотреть видео</a>', $html);
...
Рейтинг: 0 / 0
21.08.2015, 18:00
    #39034180
Хима
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения. Замена кода плеера YouTube на ссылку YouTube
kunaksergey, спасибо большое. Но почему-то вырезаются знаки подчёркивания _, хотя, по идее, должны быть...
...
Рейтинг: 0 / 0
21.08.2015, 18:04
    #39034183
Хима
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения. Замена кода плеера YouTube на ссылку YouTube
Решил проблему, вставив ([-_a-z0-9]{11}) вместо (\w+). (В ID Ютуба 11 символов)

Итого код такой:

Код: sql
1.
$html = preg_replace('#<iframe[^<]+src="[^<]+www.youtube.com/embed/([-_a-z0-9]{11})[^<]+</iframe>#is', '<a href="https://www.youtube.com/watch?v=${1}">Смотреть видео</a>', $html);
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Регулярные выражения. Замена кода плеера YouTube на ссылку YouTube / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]