<?php
$html = <<<HTML
<div>
<img src="icons/example.svg">
<img src="{{asset('icons/example.svg')}}"/>
<a href="http://www.example.com">a link</a>
<link href="css/example.css">
<link href="{{asset('css/example.css')}}"/>
<iframe src="http://www.example.com/default.htm"></iframe>
</div>
HTML;
$dom = new DOMDocument();
$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DOMXPath($dom);
foreach ($xpath->query('//img[not(starts-with(@src,"{{asset"))]/@src | //link[not(starts-with(@href,"{{asset"))]/@href') as $attr) {
$attr->value = "{{asset('" . $attr->value . "')}}";
}
echo substr($dom->saveXML(), 38); // remove the auto-generated xml tag from the start
- Output for 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- <div>
<img src="{{asset('icons/example.svg')}}"/>
<img src="{{asset('icons/example.svg')}}"/>
<a href="http://www.example.com">a link</a>
<link href="{{asset('css/example.css')}}"/>
<link href="{{asset('css/example.css')}}"/>
<iframe src="http://www.example.com/default.htm"/>
</div>
preferences:
99.35 ms | 408 KiB | 5 Q