我有一个PHP脚本,用于检索原始/纯文本文件的内容,并且希望以HTML格式输出此原始文本,但是当它以HTML格式输出时,所有换行符都不再存在。是否有某种PHP函数或其他解决方法可以使这成为可能?有没有什么方法可以用换行符将纯文本转换为HTML?
例如,如果原始文本文件中有这样的文字:
你好
我的名字是
当HTML输出,它会说:
你好我的名字是
有什么方法可以在HTML中保留这些换行符?谢谢。
(如果有帮助,我的脚本获取原始文本文件的内容,把它的变量里面,我只是回声出变量。)
我有一个PHP脚本,用于检索原始/纯文本文件的内容,并且希望以HTML格式输出此原始文本,但是当它以HTML格式输出时,所有换行符都不再存在。是否有某种PHP函数或其他解决方法可以使这成为可能?有没有什么方法可以用换行符将纯文本转换为HTML?
例如,如果原始文本文件中有这样的文字:
你好
我的名字是
当HTML输出,它会说:
你好我的名字是
有什么方法可以在HTML中保留这些换行符?谢谢。
(如果有帮助,我的脚本获取原始文本文件的内容,把它的变量里面,我只是回声出变量。)
你应该看看nl2br,其将换行符(这将不会在HTML文档上显示 - 正如您注意到的那样)到HTML标签
在您可以使用的html代码中。 <br/>
阅读功能http://php.net/manual/en/function.nl2br.php 它将帮助;)
有几种方法可以做到这一点:
使用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);
哇 - 就这么容易吗?我以前怎么没有找到这个功能?谢谢你,真棒。 :) – Chrispy 2012-02-19 00:31:19
非常出众和类似所见即所得:http://stackoverflow.com/a/7409591/2266583将单行换行视为换行符,并将双行换行视为新段落 – zanderwar 2016-09-29 02:37:59