Php DOMDocument>;setAttribute()>;布尔属性?

Php DOMDocument>;setAttribute()>;布尔属性?,php,domdocument,dom-manipulation,Php,Domdocument,Dom Manipulation,我试图创建一个可以压缩HTML的PHP类,所以我想用required替换例如required=“required”。但是如何通过DOMDocument添加bool属性呢 代码: 结果: <input required=""></para> 预期: <input required></para> 创建有效的XML结构,并且根据和-添加空属性无效 布尔属性的值应与属性的名称相同 这是有效的: 任何其他属性都必须有一个值好的,我可以解决使用ra

我试图创建一个可以压缩HTML的PHP类,所以我想用required替换例如required=“required”。但是如何通过DOMDocument添加bool属性呢

代码:

结果:

<input required=""></para>

预期:

<input required></para>

创建有效的XML结构,并且根据和-添加空属性无效

布尔属性的值应与属性的名称相同

这是有效的:


任何其他属性都必须有一个值

好的,我可以解决使用random_bytes()和str_replace()的问题

代码:


DTD
是导致它的原因。只要有一个定义,您就可以遵守它;)
<input required></para>
<input required="required"></para>
<input required></para>
checked
disabled
readonly
multiple
selected
compact
noshade
declare
ismap
nohref
nowrap
$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()
  )
);