显示文件行内容之前的空格 - PHP

时间:2013-04-27 07:13:18

标签: php html whitespace

我目前正在使用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

3 个答案:

答案 0 :(得分:2)

使用<pre>标记,并将文本文件的内容打印到此标记中。 例如:

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);

答案 1 :(得分:1)

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

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

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

如果您希望在网页中显示空白,可以使用预标记,或使用CSS属性“空格”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/

答案 2 :(得分:1)

好吧,如果你愿意的话,你可以蛮力强迫......只是你真的被卡住了!

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;";
    }
}