有没有办法将纯文本转换为带换行符的HTML?

时间:2012-02-19 00:24:37

标签: php

我有一个PHP脚本,它检索原始/纯文本文件的内容,我想用HTML输出这个原始文本,但是当它以HTML格式输出时,所有的换行符都不再存在。是否有某种PHP功能或其他一些解决方法可以实现这一目标?

例如,如果原始文本文件包含以下文本:

您好
我的名字是

以HTML格式输出时,会说:

你好,我的名字是

有没有办法在HTML中保留这些换行符?谢谢。

(如果有帮助,我的脚本会获取原始文本文件的内容,将其放入变量中,我只是回显变量。)

4 个答案:

答案 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>

https://www.w3schools.com/tags/tag_code.asp

https://www.w3schools.com/tags/tag_pre.asp