Intereting Posts
bintohex () и random_bytes () не определены в PHP 5.6 на Linux Ошибка 310 (сеть :: ERR_TOO_MANY_REDIRECTS): Отображение страницы профиля пользователя PHP Как заменить переменную в строке с помощью PHP? PHP7 + Symfony 2.8, Не удалось записать данные сеанса PHP-скрипт: код вредоносного JavaScript в конце Как передать переменные на странице PHP на другую страницу без использования формы? Доступ к файлам сервера Wamp с помощью имени компьютера, установленного локального IP-адреса. Приложение Android Как конвертировать дружественный URL-адрес в исходный URL-адрес Драйвер sqlsrv не появляется на сервере WAMP phphinfo () после добавления записей расширения в файле php.ini В Chrome появилось сообщение об ошибке «Не удалось загрузить документ PDF» на встроенных PDF-файлах Как я могу использовать PHP в качестве исходного для ионной структуры? Проверка длины строки в PHP Как пропустить некоторые поля из базы данных при использовании fputcsv Ошибка внутреннего сервера CodeIgniter PHP Apache 500

php preg_replace help iframe src

Я создал функцию, которая будет устанавливать высоту, ширину и wmode = transparent для кодов встраивания youtube. Теперь youtube возвращает код iframe. Итак, мне нужно добавить «? Wmode = transparent» в конце youtube src.

Напр.
Исходный код:

<iframe title = "YouTube-плеер YouTube" width = "420" height = "349" src = "http://www.youtube.com/embed/aXNUL1-urg8" frameborder = "0" allowfullscreen = ""> </ IFRAME>

Я хочу, чтобы его заменили:

<iframe title = "YouTube-плеер YouTube" width = " mywidth " height = " myheight " src = "http://www.youtube.com/embed/aXNUL1-urg8 ? wmode = transparent " frameborder = "0" allowfullscreen = " «> </ IFRAME>

Замена высоты и ширины работает, но замена src не работает.

Я использую ниже regex

$ patterns [] = '/src="http:\/\/www.youtube.com\/embed\/[a-zA-Z0-9._-]"/';
$ replacements [] = 'src = "http://www.youtube.com/embed/${1}?wmode=transparent"';

Ниже моя функция.

функция SetHeightWidthVideo ($ markup, $ w = '200', $ h = '120') {// сделать wmode = прозрачным

$markup = str_replace('<embed ','<embed wmode="transparent" ',$markup); //$w = '200'; //$h = '120'; $patterns = array(); $replacements = array(); if( !empty($w) ) { $patterns[] = '/width="([0-9]+)"/'; $patterns[] = '/width:([0-9]+)/'; $replacements[] = 'width="'.$w.'"'; $replacements[] = 'width:'.$w; } if( !empty($h) ) { $patterns[] = '/height="([0-9]+)"/'; $patterns[] = '/height:([0-9]+)/'; $replacements[] = 'height="'.$h.'"'; $replacements[] = 'height:'.$h; } $patterns[] = '/src="http:\/\/www\.youtube\.com\/embed\/[a-zA-Z0-9._-]"/'; $replacements[] = 'src="http://www.youtube.com/embed/${1}?wmode=transparent"'; return preg_replace($patterns, $replacements, $markup); 

}

Пожалуйста помоги. Заранее спасибо.

пытаться:

 $patterns[] = '/src="(.*?)"/'; $replacements[] = 'src="${1}?wmode=transparent"'; return preg_replace($patterns, $replacements, $markup); 

копировать, вставлять, запускать:

 function setHeightWidthSrc($s, $width, $height) { return preg_replace( '@^<iframe\s*title="(.*)"\s*width="(.*)"\s*height="(.*)"\s*src="(.*?)"\s*(.*?)</iframe>$@s', '<iframe title="\1" width="' . $width . '" height="' . $height . '" src="\4?wmode=transparent" \5</iframe>', $s ); } $original = '<iframe title="YouTube video player" width="420" height="349" src="http://www.youtube.com/embed/aXNUL1-urg8" frameborder="0" allowfullscreen=""></iframe> '; print "$original\n"; print setHeightWidthSrc($original, 100, 100) . "\n";