]*>)$i', ' $2 ', $string ); } /** * Modify iframe HTML element src attribute so it can be lazy loaded when the help tab is clicked * * @param $string * * @return string */ public function setUpLazyLoadIframeSrc( $string ): string { //var_dump($string); $doc = new \DOMDocument(); $doc->loadHTML( $string ); $tags = $doc->getElementsByTagName( 'img' ); foreach ( $tags as $tag ) { $old_src = $tag->getAttribute( 'src' ); $new_src_url = ''; $tag->setAttribute( 'src', $new_src_url ); $tag->setAttribute( 'data-src', $old_src ); } $new_div = $doc->createElement( 'div' ); $new_div->setAttribute( 'class', 'wpan-video-wrapper' ); $new_outer_div = $doc->createElement( 'div' ); $new_outer_div->setAttribute( 'class', 'wpan-outer-video-wrapper' ); $tags = $doc->getElementsByTagName( 'iframe' ); foreach ( $tags as $tag ) { $old_src = $tag->getAttribute( 'src' ); $new_src_url = ''; $tag->setAttribute( 'src', $new_src_url ); $tag->setAttribute( 'data-src', $old_src ); $new_div_clone = $new_div->cloneNode(); $tag->parentNode->replaceChild( $new_div_clone, $tag ); $new_div_clone->appendChild( $tag ); $new_outer_div_clone = $new_outer_div->cloneNode(); $new_div_clone->parentNode->replaceChild( $new_outer_div_clone, $new_div_clone ); $new_outer_div_clone->appendChild( $new_div_clone ); } return $doc->saveHTML(); } }