我有一个PHP脚本,它检索原始/纯文本文件的内容,我想用HTML输出这个原始文本,但当它用HTML输出时,所有的换行符都不存在了。是否有某种PHP函数或其他变通方法可以实现这一点?
例如,如果原始文本文件具有以下文本:
你好
我的名字是
当以HTML输出时,它会说:
你好,我叫
有什么方法可以在HTML中保留这些换行符吗?非常感谢。
(如果有帮助的话,我的脚本会获取原始文本文件的内容,将其放入一个变量中,然后我就回显该变量。)
有几种方法可以做到这一点:
使用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);
您应该签出nl2br,它将换行符(正如您所注意到的,换行符在HTML文档上不可见)转换为HTML标记
漂亮的简单有效HTML:
$html = '<p>'.implode('</p><p>', preg_split('/'R+/', $text)).'</p>';
在html代码中可以使用。<br/>
读取此函数http://php.net/manual/en/function.nl2br.php这将有所帮助;)