私はいくつかのHTMLDOM操作を行っています:
function parse_html($html) {
$dom->loadHTML($html);
libxml_clear_errors();
// Parse DOM
return $dom->saveHTML();
}
問題は、私のHTMLにいくつかのPHPコードが含まれていて、それらのいくつかがHTMLエンティティに変換されていることです。たとえば、$html
これが含まれている場合:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<?php // lang=es
$pwd = $parameter['pwd'];
$url = $parameter['url'];
?>
<p>
You are now registered. Go to ->
<a href="<?php echo $url ?>">control panel</a>
to change the settings.
</p>
これで変換されます:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8"></head>
<body>
<?php // lang=es
$pwd = $parameter['pwd'];
$url = $parameter['url'];
?><p> You are now registered. Go to -> <a href="<?php%20echo%20%24url%20?>">control panel</a> to change the settings.
</p>
</body>
</html>
は<?php echo $url ?>
エンティティに変換されますが、* html_entity_decode *のような関数は、エンティティのままである必要がある一部のエンティティもデコードするため、使用できません。
PHPコードを含むDOMを解析するにはどうすればよいですか?