替换iframe的字符串值

时间:2017-02-03 09:55:36

标签: php str-replace

我有这样的字符串

$string = ' <iframe width="560px" height="250px" src="https://www.google.com/maps/embed/v1/place?key=AIzaSyBdVKAGo41VFI44444440l17aXhg&q=Space+Needle,Seattle+WA" allowfullscreen></iframe>';

我需要新的字符串来替换数据属性,看起来像这样

$newstring = '<iframe width="100%" height="100%" src="https://www.google.com/maps/embed/v1/place?key=AIzaSyBdVKAGo41VFI44444440l17aXhg&q=Space+Needle,Seattle+WA" allowfullscreen></iframe>';

我不知道数据的价值,但我知道它总是 100%

怎么做?

4 个答案:

答案 0 :(得分:0)

你可以试试php Preg_replace,它用于使用正则表达式替换字符串部分

$string = preg_replace("/\"([0-9]*)px\"/si","'100%'",$string);
echo $string;

答案 1 :(得分:0)

这也有效,但长于preg_replace

$string = ' <iframe width="560px" height="250px"src="https://www.google.com/maps/embed/v1/place?key=AIzaSyBdVKAGo41VFI44444440l17aXhg&q=Space+Needle,Seattle+WA" allowfullscreen></iframe>';
$pos = strpos($string, "src");
$newstring = substr_replace($string,' <iframe width="100%" height="100%" ',0,$pos);

答案 2 :(得分:0)

使用preg_replace()你可以这样做

$string = ' <iframe width="560px" height="250px" src="https://www.google.com/maps/embed/v1/place?key=AIzaSyBdVKAGo41VFI44444440l17aXhg&q=Space+Needle,Seattle+WA" allowfullscreen></iframe>';

$s = preg_replace('/(width|height)="[0-9]*px"/', '$1="100%"', $string);
echo $s;

使用(width|height)确保您只更改这两个属性。

结果:

<iframe width="100%" height="100%" src="https://www.google.com/maps/embed/v1/place?key=AIzaSyBdVKAGo41VFI44444440l17aXhg&q=Space+Needle,Seattle+WA" allowfullscreen></iframe>

答案 3 :(得分:0)

如果您只想更改html元素的高度和宽度,只需在html文档或php模板文件中包含一个好的旧css文件。不需要regexp或dom解析。

由于您的iframe看起来像是从谷歌获得它并且它没有类或ID,所以您将它放在div或任何有ID的内容中,以防您在页面中有其他iframe。

div#maps-iframe-container iframe{
    width: 100%;
    height: 100%;
}