我正在使用SIMPLE HTML DOM PARSER PHP。
我要解析的部分文档来源是
<pre>
LINE 1
LINE 2
LINE 3
</pre>
这些代码定义为 $ string 和
我写了那些PHP代码
$html = str_get_html($string);
$ret = $html->find('pre',0)->plaintext;
echo $ret;
结果是
LINE 1 LINE 2 LINE 3
但在网络浏览器中,这些HTML代码正在显示
第1行
第2行
第3行
网络浏览器的显示就是我想要的。 如何在PHP中获得相同的结果?
答案 0 :(得分:3)
您需要在simple_html_dom.php
文件
e.g。
$stripRN = false;
更改两个函数file_get_html
&amp; str_get_html
所以这个
function file_get_html($url, $use_include_path = false, $context=null, $offset = -1, $maxLen=-1, $lowercase = true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT, $defaultSpanText=DEFAULT_SPAN_TEXT)
变为
function file_get_html($url, $use_include_path = false, $context=null, $offset = -1, $maxLen=-1, $lowercase = true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=false, $defaultBRText=DEFAULT_BR_TEXT, $defaultSpanText=DEFAULT_SPAN_TEXT)
和 这个
function str_get_html($str, $lowercase=true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT, $defaultSpanText=DEFAULT_SPAN_TEXT)
变为
function str_get_html($str, $lowercase=true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=false, $defaultBRText=DEFAULT_BR_TEXT, $defaultSpanText=DEFAULT_SPAN_TEXT)
答案 1 :(得分:2)
你想换行,对吗?以下应该有效:
<?php
foreach ($ret as $string) {
echo "$string\n";
}
答案 2 :(得分:1)
编辑:原始代码的反向效果。
您可以使用以下内容回显每行的文字:
浏览器输出:
第1行
第2行
第3行
文件内容:
<pre>
LINE 1
LINE 2
LINE 3
</pre>
PHP代码:
<?php
$lines = file('myfile.txt');
foreach ($lines as $line_num => $line) {
echo ($line);
}
?>
原始回答,误解了OP的问题但仍然是有用的代码。
您可以使用以下代码在一行中回显文本。
文件内容:
<pre>
LINE 1
LINE 2
LINE 3
</pre>
浏览器输出:LINE 1 LINE 2 LINE 3
PHP代码:
<?php
$lines_of_file = file("myfile.txt");
//Now $lines_of_file have an array item per each line
$file_content = file_get_contents("myfile.txt");
$file_content_separated_by_spaces = explode(" ", $file_content);
echo $file_content;
?>
答案 3 :(得分:0)
我无法弄清楚如何使用Simple HTML Dom Parser,但我使用Zend的Dom Query包成功了。以下代码用于维护pre
元素内的文本格式:
$dom = new Zend\Dom\Query($html_string);
$results = $dom->execute('pre');
foreach ($results as $result) { // each $result is of type DOMElement
echo $result->ownerDocument->saveXML($result);
}