我有一个PHP脚本,它检索原始/纯文本文件的内容,我想用HTML输出这个原始文本,但是当它以HTML格式输出时,所有的换行符都不再存在。是否有某种PHP功能或其他一些解决方法可以实现这一目标?
例如,如果原始文本文件包含以下文本:
您好
我的名字是
以HTML格式输出时,会说:
你好,我的名字是
有没有办法在HTML中保留这些换行符?谢谢。
(如果有帮助,我的脚本会获取原始文本文件的内容,将其放入变量中,我只是回显变量。)
答案 0 :(得分:8)
您应该查看nl2br,它会将新行(在HTML文档中看不到 - 如您所注意到的那样)转换为HTML标记
答案 1 :(得分:6)
有几种方法可以做到这一点:
使用file_get_contents()
和nl2br()
:
echo nl2br( file_get_contents( 'filename.txt'));
这不会解决像<>&
这样的特殊实体,您需要使用htmlspecialchars()
echo nl2br( htmlspecialchars( file_get_contents( 'filename.txt')));
也许更好的解决方案是将整个文件加载到file()
的数组中并迭代所有元素(将来你可以将行放入表中)
$data = file( 'filename.txt');
foreach( $data as $line){
echo htmlspecialchars( $line) . '<br />';
}
如果您需要处理大量数据,最好按fopen()
和fgets()
顺序执行:
$fp = fopen( 'filename.txt', 'r') or die( 'Cannot open file');
while( $line = fgets( $fp)){
echo htmlspecialchars( $line) . '<br />';
}
fclose( $fp);
答案 2 :(得分:0)
在html代码中你可以使用。 <br/>
阅读此函数http://php.net/manual/en/function.nl2br.php
它会有所帮助;)
答案 3 :(得分:-1)
Ak tychcešukázať文本bez zmenyformátovania,使用“代码”和“ pre” HTML标记:
<code> <pre>YOURTEXTHERE</pre> </code>
或仅“前” HTML标记:
<pre>YOURTEXTHERE</pre>