【问题标题】:Display white spaces that precede the content of the line of the file - PHP显示文件行内容之前的空格 - PHP
【发布时间】:2013-04-27 07:13:18
【问题描述】:

我目前正在使用 foreach 循环来显示文本文件的内容。但是,我还想显示行的实际内容之前的空格。该怎么做?

$loop_var = 0;
    foreach($lines as $line) {  
        $loop_var++;
        if ($loop_var == 1) {
            echo'<div id="h1">' . $line . '</div>';
        }
        if ($loop_var == 2) {
            echo '<div id="h2">' . $line . '</div><br />';
        }
        if ($loop_var > 2) {
            if ($loop_var == 3) { echo '<pre><div id="code">'; }
            echo ($line) . "<br />";
        }
    }
    echo '</pre></div>';

现在,如果文本文件包含以下内容:

blah
blah
    blah
  blah

它显示为:

blah

blah

    blah

  blah

【问题讨论】:

  • 我已将您的问题重新标记为 HTML,假设这就是您所说的。尝试使用描述您的问题所涉及的语言和/或技术的标签; Stack Overflow 是一个涵盖所有编程语言的论坛。
  • 对不起我的无知。我认为这更像是 PHP 问题而不是 HTML 问题。
  • 为什么 PHP 应该删除空白而不是,例如,字母 c? ;-)
  • 还有一件事:最后你切换了封闭标签:echo '&lt;/pre&gt;&lt;/div&gt;' 如果你想使用更少的标签,你不需要在pre标签内使用&lt;div&gt;,只需将id="code" 添加到pre
  • 我怎么没想到……再次感谢。

标签: php html whitespace


【解决方案1】:

使用&lt;pre&gt;标签,将文本文件的内容打印到此。 示例:

print '<pre>'.file_get_contents('filename.txt').'</pre>';

逐行(有条件)

$file = fopen('filename','r');

print '<pre>';
$counter = 0;
while( $line = fgets($file) ){
   if(  /*the condition comes here whitch line you want to print. example: */ $counter >= 2  ){
        print $line;
   }
   if(  /*the condition comes here where wants you end the printing. example: */ $counter >= 10 )
   $counter++;
}
print '</pre>';

fclose($file);

【讨论】:

  • 实际上这对我的情况没有帮助,因为我不想一次性显示整个文件,因为前两行包含一些不同的信息。
  • 这只是一个例子。我坚持你有代码的其他部分。我用逐行解决方案编辑答案
  • 好吧,没关系,我明白了要点。但不是显示前面的字符,而是在行前添加一个换行符。
  • 嗯,它有效。我忘记删除我为处理此问题而添加的一段代码。但是,换行问题仍然存在。
  • &lt;br/&gt; 如果您使用&lt;pre&gt; 则不需要,或者您可以使用nl2br($line),如果您想使用&lt;br/&gt;,这会将行尾转换为&lt;br/&gt; 标签。但是代码中额外的
    会导致额外的换行符。在&lt;pre&gt; 标记中,换行符在 html 中也显示为真正的换行符。
【解决方案2】:

当您从文件中读取文本并再次输出该文本时,空格仍然存在。

但是:如果您正在输出 HTML,并在浏览器中查看输出,则忽略空格。这只是浏览器显示 html 的正常方式。

使用您的浏览器查看 HTML 源代码(例如,Firefox 中的 CTRL-U)以检查是否是这种情况。

如果您希望在网页中显示空白,您可以使用 pre-Tag,或使用 CSS 属性“whitespace”http://www.w3schools.com/cssref/pr_text_white-space.asp

  <pre><?php echo $file_content ?></pre>

  <p style="whitespace:pre;"><?php echo $file_content ?></p>

在此处查看演示:http://jsfiddle.net/bjelline/CjXMe/

【讨论】:

    【解决方案3】:

    好吧,如果你愿意,你可以暴力破解......只有在你真的被卡住的情况下!

    1) 用strlen()

    获取字符串的长度

    2) 对字符串中的字符运行循环并使用 strpos

    检查空格

    3) 将一个 html 空间连接到一个空字符串并预先打印

    $str = " whatever is in here ... ";
    $spaces = "";
    for( $i=0; $i<strlen($str); $i++ ){
        if( strpos( $str, ' ', $i ) ){
            $spaces .= "&nbsp;";
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 2013-09-19
      • 2017-02-01
      • 2016-01-26
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多