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

Статус
В этой теме нельзя размещать новые ответы.

Curt

Постоялец
Регистрация
2 Окт 2007
Сообщения
50
Реакции
4
День добрый, такая проблема.. в строке есть тег
Код:
<iframe width="640" height="480" ...
нужно заменить значение параметра width и height на другое, ну допустим 320 и 240..
чтобы было так:
Код:
<iframe width="320" height="240" ...

В регулярках вообще не соображаю пока, пробовал написать сам - не получилось!

Помогите пожалуйста кто умеет) спасибо большое!
 
на
PHP:
PHP

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

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
или так, если изначально 640 и 480 неизвесны:
PHP:
$str = '<iframe width="640" height="480" ...';
echo fun($str, 1000, 600);
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);
}
спасибо!!!
а если между <iframe и width что-то есть? или между другими параметрами, это сработает?
спасибо!!!
а если между <iframe и width что-то есть? или между другими параметрами, это сработает?
неа(((((( не работает(((((((
 
а если между <iframe и width что-то есть? или между другими параметрами, это сработает?
Там надо поставить .*?

PHP:
$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); 
}
 
  • Нравится
Реакции: Curt
ребят, ну помогите кто-нибудь пожалуйста.. очень надо!
 
PHP:
$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);
}

вот так попробуй...

но это сработает есть width идет перед height
 
  • Нравится
Реакции: Curt
хм.. тоже почему-то не работает(( есть аська? напишите мне пожалуйста в ICQ 141686
в долгу не останусь
 
PHP:
'/(<iframe.*?width=)"?\'?\d+(.*?height=)"?\'?\d+/is'
ну а такую регулярку запихнуть в функцию?
 
  • Нравится
Реакции: Curt
хм.. тоже почему-то не работает(( есть аська? напишите мне пожалуйста в ICQ 141686
в долгу не останусь
Если везде идет одинаковое значение, проще вырезать так
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
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху