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

Chr*_*spy 5 php

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

例如,如果原始文本文件具有此文本:

你好,
我的名字是

以HTML格式输出时,它会说:

你好我的名字是

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

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

Zar*_*Zar 9

您应该查看nl2br,它将新行(在HTML文档中看不到 - 如您所注意到的那样)转换为HTML标记


Vyk*_*tor 6

做这件事有很多种方法:

使用file_get_contents()nl2br():

echo nl2br( file_get_contents( 'filename.txt'));
Run Code Online (Sandbox Code Playgroud)

这不会解决<>&您需要使用的特殊实体htmlspecialchars()

echo nl2br( htmlspecialchars( file_get_contents( 'filename.txt')));
Run Code Online (Sandbox Code Playgroud)

或许更好的解决方案是将整个文件加载到数组中file()并通过所有元素进行迭代(您将来可以将行放入表中)

$data = file( 'filename.txt');
foreach( $data as $line){
    echo htmlspecialchars( $line) . '<br />';
}
Run Code Online (Sandbox Code Playgroud)

如果你需要处理大量的数据,它会是最好做到这一点的顺序fopen()fgets():

$fp = fopen( 'filename.txt', 'r') or die( 'Cannot open file');
while( $line = fgets( $fp)){
    echo htmlspecialchars( $line) . '<br />';
}
fclose( $fp);
Run Code Online (Sandbox Code Playgroud)