替换特定标记内的属性名称

时间:2015-01-09 20:56:45

标签: php regex wordpress

在我的新Wordpress主题中,我将使用一个lazyload库,要求我使用data-src属性而不是src。由于我想保留旧内容,我想使用Wordpress函数替换属性。什么是忽略属性顺序的替换模式,仅限于imgiframe标记?

1 个答案:

答案 0 :(得分:1)

使用解析器,这比在html上使用正则表达式更安全。

    $doc = new DOMDocument(1.0, 'utf-8');
    $doc->loadHTML("html string........"); //replace with your html string
    $iframes = $doc->getElementsByTagName("iframe");
    $imgs = $doc->getElementsByTagName("img");

    foreach($iframes as $iframe)
    {
        $iframe->setAttribute("data-src", $iframe->getAttribute("src") );
        $iframe->removeAttribute("src"); // optional, delete if not wanted.
    }

    foreach($imgs as $img)
    {
        $img->setAttribute("data-src", $img->getAttribute("src") );
        $img->removeAttribute("src"); // optional, delete if not wanted.
    }

    $editedHTML = $doc.saveHTML();