PHP在string中查找并替换html属性

时间:2015-09-18 09:05:10

标签: php iframe

我从某些api获取iframe,并且我在某些var中持有这个iframe。

我想搜索" 身高"并将他的价值改变为别的东西。与" 滚动"。

相同

例如:

<iframe src="someurl.com" width="540" height="450" scrolling="yes" style="border: none;"></iframe>

在php函数之后,iframe将是:

我们已经改变了#34;身高&#34;到600px和&#34;滚动&#34;没有

<iframe src="someurl.com" width="540" height="600" scrolling="no" style="border: none;"></iframe>

我有这个代码的解决方案:

$iframe = preg_replace('/(<*[^>]*height=)"[^>]+"([^>]*>)/', '\1"600"\2', $iframe);

问题是&#34; preg_replace&#34;运行它删除&#34; height&#34;

之后的所有html属性

由于

1 个答案:

答案 0 :(得分:2)

您可以使用DOMDocument。像这样:

function changeIframe($html) {

    $dom = new DOMDocument;
    $dom->loadHTML($html);
    $iframes = $dom->getElementsByTagName('iframe');
    if (isset($iframes[0])) {
        $iframes[0]->setAttribute('height', '600');
        $iframes[0]->setAttribute('scrolling', 'no');
        return $dom->saveHTML($iframes[0]);
    } else {
        return false;
    }
}

$html = '<iframe src="someurl.com" width="540" height="450" scrolling="yes" style="border: none;"></iframe>';

echo changeIframe($html);

使用此方法,您可以根据需要修改iframe。

感谢。