0

現在、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
4

3 に答える 3

2

タグを使用<pre>して、テキストファイルの内容をこれに出力します。例:

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

Line By line (条件あり)

$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);
于 2013-04-27T07:14:58.540 に答える
1

ファイルからテキストを読み取ってそのテキストを再度出力すると、空白がまだ残っています。

ただし、HTML を出力してブラウザーで出力を表示する場合、空白は無視されます。これは、ブラウザが html を表示する通常の方法です。

ブラウザーを使用して HTML ソース コードを表示し (例: Firefox では CTRL-U)、これに該当するかどうかを確認します。

Web ページに空白を表示したい場合は、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/

于 2013-04-27T07:18:36.410 に答える
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;";
    }
}
于 2013-04-27T07:54:38.620 に答える