1. Начата процедура восстановления социальных групп. Лидерам старых и новых групп обязательно ознакомиться с регламентом проведения работ.

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

Тема в разделе 'Регулярные выражения', создана пользователем Curt, 23 сен 2011.

  1. День добрый, такая проблема.. в строке есть тег
    Код:
    <iframe width="640" height="480" ...
    нужно заменить значение параметра width и height на другое, ну допустим 320 и 240..
    чтобы было так:
    Код:
    <iframe width="320" height="240" ...
    В регулярках вообще не соображаю пока, пробовал написать сам - не получилось!

    Помогите пожалуйста кто умеет) спасибо большое!
  2. на
    PHP:
    PHP
    PHP:
    $text=str_replace('width="640"','width="320"',$text);   
    PHP:
    $text=str_replace('height="480"','height="240"',$text);   
    в переменной $text ваш текст.
    А так нужно более точно спрашивать, потому как неизвестно где вырезать из чего.
    Curt нравится это.
  3. или так, если изначально 640 и 480 неизвесны:
    PHP:
    $str '<iframe width="640" height="480" ...';
    echo 
    fun($str1000600);

    function 
    fun($str$widht$height){
        
    //return preg_replace('/<iframe width="\d+" height="\d+/i', "<iframe width=\"$widht\" height=\"$height", $str);
        
    return preg_replace('/(<iframe width=)"\d+"( height=)"\d+/i''$1"'.$widht.'$2"'.$height$str);
    }
    Curt нравится это.
  4. спасибо!!!
    а если между <iframe и width что-то есть? или между другими параметрами, это сработает?
    неа(((((( не работает(((((((
  5. Там надо поставить .*?

    PHP:
    $str '<iframe ololo width="640" bla-bla height="480" ...'
    echo 
    fun($str1000600); 
    function 
    fun($str$widht$height){ 
        return 
    preg_replace('/(<iframe.*?width=)"\d+"(.*?height=)"\d+/i''$1"'.$widht.'$2"'.$height$str); 
    }
    Curt нравится это.
  6. ребят, ну помогите кто-нибудь пожалуйста.. очень надо!
  7. wal

    PHP:

    $str 
    '<iframe ololo width="640" bla-bla height="480" ...';
    echo 
    fun($str1000600);
    function 
    fun($str$widht$height){
        return 
    preg_replace('%(<iframe.+?width=)"\d+"(.+?height=)"\d+"%i''$1"'.$widht.'"$2"'.$height.'"'$str);
    }
    вот так попробуй...

    но это сработает есть width идет перед height
    Curt нравится это.
  8. хм.. тоже почему-то не работает(( есть аська? напишите мне пожалуйста в ICQ 141686
    в долгу не останусь
  9. PHP:
    '/(<iframe.*?width=)"?\'?\d+(.*?height=)"?\'?\d+/is'
    ну а такую регулярку запихнуть в функцию?
    Curt нравится это.
  10. Если везде идет одинаковое значение, проще вырезать так
    PHP:
    $text=str_replace('width="640"','width="320"',$text);  
    $text=str_replace('height="480"','height="240"',$text); 
    Уже давно вам помогли бы, если бы вы сказали что хотите вырезать, или показали откуда. Делов минута, вы три дня не можете сделать.
    Или дайте кто нибудь сделает.
    Заменить везде в тексте СТРОКУ1 на СТРОКУ2 (задача решается без регегулярных выражений:(
    $string=str_replace("СТРОКА1","СТРОКА2",$string);
    Если известны размеры то заменить еще можно так
    PHP:
    <?php
    $text
    =<<<EOFF
     iframe width="600" height="300"
    EOFF;
    $text=preg_replace("/(width=\"600\")/si",">width=\"900\"",$text);
    echo 
    $text=preg_replace("/(height=\"300\")/si","height=\"60\"",$text);
    ?>
    Curt нравится это.