提问人:Kamil Janicki 提问时间:5/17/2018 更新时间:5/17/2018 访问量:453
热衷于在 PHP DOM 文档输出中添加新行 \r\n 和选项卡?
Hot to add new line \r\n and tabs in PHP DOM Document output?
问:
我使用 PHP DOM 为 HTML 制作了简单的解析器,但我的输出中有新行 (\r\n) 的问题。这是我的代码(我知道它可能质量很差,但它几乎可以工作,而且我是初学者;))
<?php
$html = file_get_contents('page_1_second.html');
$dom = new DOMDocument();
$internalErrors = libxml_use_internal_errors(true);
$dom->loadHtml('<?xml encoding="utf-8" ?>'.$html);
libxml_use_internal_errors($internalErrors);
$finder = new DomXPath($dom);
$classname = 'row1h';
$nodes = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]");
$tmp_dom = new DOMDocument();
foreach($nodes as $node)
{
$tmp_dom->appendChild($tmp_dom->importNode($node,true));
}
$innerHTML = trim($tmp_dom->saveHTML());
$output = new DOMDocument();
$internalErrors = libxml_use_internal_errors(true);
$output->loadHtml('<?xml encoding="utf-8" ?>'.$innerHTML);
libxml_use_internal_errors($internalErrors);
foreach($output->getElementsByTagName('a') as $link)
{
echo
'<topic_title>'.$link->nodeValue.'</topic_title>'.
'<br>'.'/r/n'.
'<topic_desc>'.$link->getAttribute('title').'</topic_desc>'.
'<br><br>';
}
?>
上面的代码给了我以 \r\n 作为文本的输出,但我想要换行符:
<topic_title>Title ONE</topic_title><br>\r\n<topic_desc>DESC1</topic_desc><br><br><topic_title>Title two</topic_title><br>\r\n<topic_desc>DESC 2</topic_desc><br><br><topic_title>Title 3</topic_title><br>\r\n<topic_desc>DESC 3</topic_desc><br><br>
我正在尝试,但我无法将输出显示如下所示:
<topic_title>Title ONE</topic_title><br>
<topic_desc>DESC1</topic_desc>
<topic_title>Title two</topic_title><br>
<topic_desc>DESC 2</topic_desc><br>
<topic_title>Title 3</topic_title><br>
<topic_desc>DESC 3</topic_desc><br><br>
我正在尝试,但它不起作用。formatOutput = true;
有人可以帮我解决这个问题吗?
答:
0赞
Sean Munson
5/17/2018
#1
您需要使用双引号来解释转义序列。
您是否尝试过使用双引号“ ”而不是单引号 ' ' ?
评论
1赞
Nigel Ren
5/17/2018
这更像是一种评论,答案比提出问题更能说明问题所在。
0赞
Kamil Janicki
5/17/2018
我的天啊!我感到很惭愧 - 我忘记了PHP的基本规则,即“双引号”之间的字符串被解释,符号之间的字符串被innored。非常感谢!
评论