PHP读取文件时如何保留原文件中的多余空格?
问题描述
原文件内容:
I int result = 2 * n; result = result + 1; II int result = n + 1; result = result * 2; III int result = (n + 1) * 2;
使用以下PHP代码读取输出:
while(!feof($myfile)) { $line = fgets($myfile) ; echo $line . "<br>"; }
当前输出(多余空格被合并):
I int result = 2 * n; result = result + 1; II int result = n + 1; result = result * 2; III int result = (n + 1) * 2;
需求:保留文本中的多余空格,让输出间距和原文件一致。
解决方案
- 使用
<pre>标签包裹输出
HTML默认会把多个连续空格合并成一个,而<pre>标签会完整保留文本的原始格式,包括空格、换行、缩进。修改代码如下:
echo "<pre>"; while(!feof($myfile)) { $line = fgets($myfile); echo $line; } echo "</pre>";
不需要再手动添加<br>,<pre>会自动识别原文本的换行符。
- 将空格替换为非断空格
如果不想用<pre>标签,可以把文本里的普通空格替换成HTML非断空格字符 ,浏览器就不会合并连续空格。代码修改如下:
while(!feof($myfile)) { $line = fgets($myfile); echo str_replace(' ', ' ', $line) . "<br>"; }
这种方式适合需要自定义排版的场景,但对于代码类内容,<pre>的可读性和简洁性更强。
内容的提问来源于stack exchange,提问作者DCR
相关产品推荐
相关产品推荐

