我正在尝试使用以下代码在我的网站中包含一个带有php的txt文件
<?php
$myFile = '[http://users.otenet.gr/~vag1976/optonio/NOAAMO.TXT]';
$fp = fopen("$myFile", "r");
while(!feof($fp)) {
echo fgets($fp) . "<br />";
}
fclose($fp);
?>
问题是使用这个PHP代码的结果与原始代码不完全相同。单词之间的间隙(空格)丢失,仅由一个空格代替。观看结果很糟糕。有什么想法吗?
答案 0 :(得分:1)
这不是PHP问题,只是浏览器不会呈现多个“普通”空格(如果您不使用非空格
或特殊<pre>
标记)。
您还应该使用实线换行而不是<br />
标记:
<?php
$myFile = '[http://users.otenet.gr/~vag1976/optonio/NOAAMO.TXT]';
// You don't need to use "$myFile" here, just use the variable without quotes
$fp = fopen($myFile, "r");
echo "<pre>";
while(!feof($fp)) {
echo fgets($fp) . "\n";
}
echo "</pre>";
fclose($fp);
?>
如果您的文件不是太大,您也可以使用file_get_contents():
<?php
$myFile = '[http://users.otenet.gr/~vag1976/optonio/NOAAMO.TXT]';
echo '<pre>' . file_get_contents($myFile) . '</pre>';
?>
答案 1 :(得分:0)
你可以写一些<pre>
- 标签:
<pre><?php /* your code */ ?></pre>
<pre>
保留空格。
浏览器总是将多个后续空格替换为一个空格。
然后,您也可以使用\n
代替<br />
进行换行。
答案 2 :(得分:0)
要使空格使用<pre></pre>
标记。
答案 3 :(得分:0)
您需要使用<pre>
标记。它保留了多余的空白。
<?php
$myFile = '[http://users.otenet.gr/~vag1976/optonio/NOAAMO.TXT]';
$fp = fopen("$myFile", "r");
echo "<pre>";
while(!feof($fp)) {
echo fgets($fp) . "<br />";
}
echo "</pre>";
fclose($fp);
?>
另外,我希望您意识到<br />
不是HTML5语义丰富的语言学。
答案 4 :(得分:0)
您似乎需要在fgets()
标记中附上<pre>
返回的内容,以保留空格。
原始答案:https://stackoverflow.com/a/2805900/2305229
修改后的代码:
<?php
$myFile = '[http://users.otenet.gr/~vag1976/optonio/NOAAMO.TXT]';
$fp = fopen("$myFile", "r");
while(!feof($fp)) {
echo "<pre>";
echo fgets($fp) . "<br />";
echo "</pre>"
}
fclose($fp);
?>