RegEx для встраивания YouTube iframe - PullRequest
0 голосов
/ 02 июня 2019

код PHP:

$patterny = '/(.*) ((youtube.com) | (youtu.be) | (www.youtube.com)) (.*)/i';

$replacementy = '<iframe src="http://youtube.com/$6" allowfullscreen></iframe>';

$string2 = preg_replace($patterny, $replacementy, $string);

echo $string2;

Я проверил вышеупомянутое регулярное выражение в http://regex101.com, и он выдает удовлетворительные результаты.

https://regex101.com/r/wqbywv/1

Когда я смотрю на источник просмотра веб-страницы, на которой должен отображаться iframe, я получаю только следующий URL-адрес.

https://www.youtube.com/qvuvjEkeDAw

Код iframe нигде не видно.

Каждая ссылка на YouTube будет отдельной строкой в ​​текстовом файле.

1 Ответ

0 голосов
/ 02 июня 2019

Я предполагаю, что здесь нам просто нужно добавить i, которого нет в теге iframe close. Кроме того, мы можем изменить и упростить наше выражение, если мы хотим:

Тест

$re = '/(.*) ((youtube.com) | (youtu.be) | (www.youtube.com) ) (.*)/mix';
$str = 'http://youtu.be/cCnrX1w5luM
www.youtube.com/cCnrX1w5luM
youtu.be/cCnrX1w5luM
https://www.youtube.com/watch?v=nzj7Wg4DAbs
http://www.youtube.com/watch?v=nzj7Wg4DAbs
youtube.com/watch?v=nzj7Wg4DAbs
http://www.youtube.com/watch?v=-wtIMTCHWuI
http://www.youtube.com/v/-wtIMTCHWuI?version=3&autohide=1
http://youtu.be/-wtIMTCHWuI
http://www.youtube.com/oembed?url=http%3A//www.youtube.com/watch?v%3D-wtIMTCHWuI&format=json
Hello https://www.youtube.com/watch?v=nzj7Wg4DAbs world
';
$subst = '<iframe src="htpp://youtube.com$6" allowfullscreen></iframe>';

$result = preg_replace($re, $subst, $str);

echo $result;

выход

<iframe src="htpp://youtube.com/cCnrX1w5luM" allowfullscreen></iframe>
<iframe src="htpp://youtube.com/cCnrX1w5luM" allowfullscreen></iframe>
<iframe src="htpp://youtube.com/cCnrX1w5luM" allowfullscreen></iframe>
<iframe src="htpp://youtube.com/watch?v=nzj7Wg4DAbs" allowfullscreen></iframe>
<iframe src="htpp://youtube.com/watch?v=nzj7Wg4DAbs" allowfullscreen></iframe>
<iframe src="htpp://youtube.com/watch?v=nzj7Wg4DAbs" allowfullscreen></iframe>
<iframe src="htpp://youtube.com/watch?v=-wtIMTCHWuI" allowfullscreen></iframe>
<iframe src="htpp://youtube.com/v/-wtIMTCHWuI?version=3&autohide=1" allowfullscreen></iframe>
<iframe src="htpp://youtube.com/-wtIMTCHWuI" allowfullscreen></iframe>
<iframe src="htpp://youtube.com/watch?v%3D-wtIMTCHWuI&format=json" allowfullscreen></iframe>
<iframe src="htpp://youtube.com/watch?v=nzj7Wg4DAbs world" allowfullscreen></iframe>

Демо

...