0

我正在尝试使用以下代码在我的网站中包含一个带有 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 代码的结果与原来的不完全相同。单词之间的间隙(空格)丢失,仅由一个空格代替。观看结果很糟糕。有任何想法吗?

4

5 回答 5

1

这不是 PHP 问题,只是浏览器不呈现多个“正常”空格(如果您不使用不间断空格&nbsp;或特殊<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>';
?>
于 2013-04-21T20:08:17.680 回答
0

你可以在它周围写一些<pre>标签:

<pre><?php /* your code */ ?></pre>

<pre>保留空格。

浏览器总是用一个替换多个后面的空格。

然后你也可以使用\n而不是<br />做你的换行。

于 2013-04-21T20:08:23.503 回答
0

要保留空格,请使用<pre></pre>标签。

于 2013-04-21T20:08:47.567 回答
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 语义丰富的语言学。

于 2013-04-21T20:08:47.900 回答
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);
?>
于 2013-04-21T20:19:26.643 回答