用 PHP 中另一个 HTML 属性的内容替换一个 HTML 属性
Replace one HTML attribute with the content of another HTML attribute in PHP
假设我有一个 HTML 字符串,多次出现如下所示:
<img scr1="xxxx.jpg" src="aaaa.jpg" other_attributes="some_values" />
我想将 "src" 属性替换为同一标签内 "src1" 属性的值。 (因此在示例中它会改为 src="xxxx.jpg"
)。
如何使用 PHP 实现此目的?
非常感谢!
使用DOMDocument
<?php
$html = '<img scr1="xxxx.jpg" src="aaaa.jpg" other_attributes="some_values" />';
$dom = new DOMDocument;
$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DOMXPath($dom);
$images = $xpath->query("//img");
foreach ($images as $image) {
if ($image->hasAttribute('scr1')) {
$src1 = $image->getAttribute('scr1');
$image->removeAttribute('scr1');
$image->setAttribute('src', $src1);
}
}
echo $dom->saveHTML();
结果:
<img src="xxxx.jpg" other_attributes="some_values">
更新
来自 Why doesn't PHP DOM include slash on self-closing tags:
header('Content-Type: application/xhtml+xml');
echo $dom->saveXML();
假设我有一个 HTML 字符串,多次出现如下所示:
<img scr1="xxxx.jpg" src="aaaa.jpg" other_attributes="some_values" />
我想将 "src" 属性替换为同一标签内 "src1" 属性的值。 (因此在示例中它会改为 src="xxxx.jpg"
)。
如何使用 PHP 实现此目的?
非常感谢!
使用DOMDocument
<?php
$html = '<img scr1="xxxx.jpg" src="aaaa.jpg" other_attributes="some_values" />';
$dom = new DOMDocument;
$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DOMXPath($dom);
$images = $xpath->query("//img");
foreach ($images as $image) {
if ($image->hasAttribute('scr1')) {
$src1 = $image->getAttribute('scr1');
$image->removeAttribute('scr1');
$image->setAttribute('src', $src1);
}
}
echo $dom->saveHTML();
结果:
<img src="xxxx.jpg" other_attributes="some_values">
更新
来自 Why doesn't PHP DOM include slash on self-closing tags:
header('Content-Type: application/xhtml+xml');
echo $dom->saveXML();