Php 如何防止DOMText中回车的转义?

Php 如何防止DOMText中回车的转义?,php,dom,Php,Dom,是否可以防止DOMText中的回车符转义 以下打印件和#13: $d = new DOMDocument('1.0','utf-8'); $t = $d->createTextNode("\r"); echo $d->saveXML($t); 其他无法打印的字符不会转义。这是单字节ASCII范围内唯一作为数字实体转义的字符。Nul字节似乎打断了文本,但是\1到0x12保持为文本 我还注意到,JavaScript DOM允许原始\r字符,因此推测它不是无效字节。在Chrome中,以下

是否可以防止DOMText中的回车符转义

以下打印件
和#13

$d = new DOMDocument('1.0','utf-8');
$t = $d->createTextNode("\r");
echo $d->saveXML($t);
其他无法打印的字符不会转义。这是单字节ASCII范围内唯一作为数字实体转义的字符。Nul字节似乎打断了文本,但是
\1
0x12
保持为文本

我还注意到,JavaScript DOM允许原始
\r
字符,因此推测它不是无效字节。在Chrome中,以下打印为真:

var p = document.createElement('p')
p.appendChild( document.createTextNode('\r') );
console.log( '\r' === p.innerHTML );

我对变通办法不感兴趣。我只是想知道在调用saveXML时是否有办法直接控制它。

尝试使用此方法
createElement
而不是
createTextNode
createTextNode
还将转义作为参数传递的字符串,另一个不转义

这是不正确的
$d->saveXML($d->createElement('p',“\r”)
打印
&13

。加上createElement无法处理某些应转义的字符。