Замена значения параметра тэга!

Статус
В этой теме нельзя размещать новые ответы.
вобщем суть в том что в ютуба вставляют код видео, и если оно слишком большое - мне нужно его уменьшить...

т.к. допустим этот iframe может быть в статье, получается что-то вроде:

PHP:
$content="текст статьи <iframe ..... остальной текст статьи";

хммммммм, пока писал до самого дошло - может там в коде двойные кавычки икранируются и из-за этого не выходит?
 
2 фрейма с главной страницы youtube.com с регуляркой которая заменяет.
PHP:
$str = '<iframe id="ad_creative_iframe_1" src="http://ad-emea.doubleclick.net/adi/com.ythome/_default;sz=970x250,960x250;tile=1;dcopt=ist;kgender=m;k21=1;kga=1002;kar=4;klg=ru;kage=29;kgg=1;kt=K;kcr=ru;dc_dedup=1;kmyd=ad_creative_1;kbsg=HPRU110927;ord=5471516665152266?" height="250" width="970" scrolling="no" frameborder="0" style="z-index: 1" id="homepagetop" onload="yt.www.home.ads.workaroundLoad()" onmouseover="yt.www.home.ads.workaroundIE(this)" onfocus="yt.www.home.ads.workaroundIE(this)"></iframe>

<iframe id="ad_creative_iframe_3" height="100" width="300" scrolling="no" frameborder="0" style="z-index: 1" id="promo1"></iframe>
'; 
echo fun($str, 1000, 600); 

function fun($str, $widht, $height){ 
    return preg_replace('/(<iframe.*?height=)"\d+"(.*?width=)"\d+/i', '$1"'.$height.'"$2"'.$widht, $str); 
}
 
  • Нравится
Реакции: Curt
Олег, там строка получается с экранируемыми кавычками, т.е. -
PHP:
<iframe width=\"***\" height=\"***\" ....
поэтому ничего не работает(
 
PHP:
<?php
$text = "iframe width=\"320\" height=\"240\" ....  ";
$text=preg_replace('/(iframe.*?height=.*?)\d+(.*?width=.*?)\d+/i','$1 640 $2 480',$text);
$text=preg_replace("/(iframe.*?width=.*?)\d+(.*?height=.*?)\d+/i",'$1 640 $2 480',$text);
print_r ($text);


2 раза pregreplace на случай если width heith местами поменяны будут
 
$str = '<iframe ololo width="640" bla-bla height="480" ...';
echo
fun($str, 1000, 600);
function
fun($str, $widht, $height){
return
preg_replace('%(<iframe.+?width=)"\d+"(.+?height=)"\d+"%i', '$1"'.$widht.'"$2"'.$height.'"', $str);
}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху