有没有任何方法可以将纯文本转换为带换行符的HTML


Is there any way to convert plain text into HTML with line breaks?

我有一个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这将有所帮助;)