我目前正在使用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
答案 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>
答案 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 .= " ";
}
}