我尝试创建一个可以压缩HTML的PHP类,所以我想替换例如必需=“必需”。但是如何通过DOMDocument添加bool属性?
$doc = new DOMDocument("1.0");
$node = $doc->createElement("input");
$newnode = $doc->appendChild($node);
$newnode->setAttribute("required", '');
var_dump($doc->saveHTML());
结果:
<input required=""></para>
预期:
<input required></para>
答案 0 :(得分:1)
PHP's DOMDocument
创建了一个有效的XML结构,并根据XML 1.0和XML 1.1 - 添加空属性无效。
布尔属性的值应与属性名称相同。
这是有效的:
<input required="required"></para>
NOT 有效:
<input required></para>
savehtml
功能根据dtd
验证内容。根据{{3}},这是作为空属性有效的属性列表:
checked
disabled
readonly
multiple
selected
compact
noshade
declare
ismap
nohref
nowrap
任何其他属性必须具有值
答案 1 :(得分:0)
好的,我可以使用random_bytes()和str_replace()来解决问题......
$rand = md5(random_bytes(16));
$doc = new DOMDocument("1.0");
$node = $doc->createElement("input");
$newnode = $doc->appendChild($node);
$newnode->setAttribute("required", 'delete-this' . $rand);
var_dump(
str_replace(
array('="delete-this' . $rand . '"'),
array(''),
$doc->saveHTML()
)
);