Domdocument在PHP打开标签附近失去了一些代码



我喜欢代码元素来保留整个节点值。但它失去了:'<?php $this->'。可能会将该部分作为HTML标签。我不知道。请参阅摘要:

<?php
$text = '<div><code><?php $this->goal = 'żźćłóąę';</code></div>';
$dom = new DOMDocument();
$dom->loadHTML(mb_convert_encoding($text, 'HTML-ENTITIES', "UTF-8"));
$codeElements = $dom->getElementsByTagName('code');
foreach($codeElements as $elem)
    var_dump($elem->nodeValue);

结果是:

`string(24) "goal = 'żźćłóąę';"`

,但应该是

string(37) "<?php $this->goal = 'żźćłóąę';"

如何实现这一目标?

在线:https://3v4l.org/d6dfm

谢谢

编辑

经过一些评论后,我的问题需要一些解释。这个

&lt;?

不得由PHP解释器解析。必须将其显示为代码演示文稿。整个文本,整行必须显示为字符串。开放的PHP标签,变量和箭头。

尝试像这样

    <?php
$text = '<div><code><?php $this->goal = 'żźćłóąę';</code></div>';
$text = str_replace("<?","&lt;?",$text);
$dom = new DOMDocument();
$dom->loadHTML(mb_convert_encoding($text, 'HTML-ENTITIES', "UTF-8"));
$codeElements = $dom->getElementsByTagName('code');
foreach($codeElements as $elem)
    var_dump($elem->nodeValue);

最新更新