2013-01-18 34 views
1

以下腳本將打印名爲arrarray中的字符串。從arr迴應後,我嘗試使用\n插入換行符,但我沒有看到它。這是爲什麼 ?無法添加換行符。爲什麼這樣?

<?php 
$arr = array("ghazal","shayari","silence","hayaat"); 
echo $arr[0]; 
echo $arr[1]; 
foreach($arr as $var) { 
    echo $var; 
    echo "\n"; 
} 
+1

'echo「
」' –

+1

好問題!我以前有過這個問題,並使用echo $ var來解決它。 「
」; – lukeocom

+1

這個問題每天都有一千個重複。不幸的是,他們都有這樣的垃圾標題,我找不到它們。:( –

回答

2

HTML以相同的方式處理任何數字中的所有空格字符。

也就是說,下面將全部呈現在瀏覽器中一個空格:

echo "\n"; 
echo "\t"; 
echo "   "; 
echo " \n\n\n "; 

爲了使實際linkbreak在HTML中,你需要一個<br>元素插入到文檔中。

0

這應該工作

foreach($arr as $var) { 
    echo $var; 
    echo "<br />"; 
} 

因爲在你的HTML部分<br />工作換行符,當你從瀏覽器的一側時看到HTML源代碼的\n也適用這表明你斷行

0

由於換行符以HTML格式呈現,因此使用<br />。代之以做。

foreach($arr as $var) { 
    echo $var, '<br />'; 
} 

另一種方法是來包裝<pre></pre>輸出,其評估空格和換行像你現在在做什麼。

+2

「HTML解析爲」
「的換行符實際上並不是英語,HTML是一種語言,它不解析任何東西,你可能會說」新行在HTML中被表示爲'
'「 – meagar

+1

而且這只是有條件的真的 –

+0

我想這是相當笨拙的 - 更新我的答案 –

2

在HTML中,瀏覽器不顯示\n換行符。如果您查看源代碼,您將看到它們顯示。您可以使用the nl2br PHP function將它們轉換爲<br>,或由該改變你的腳本:

<?php 
$arr = array("ghazal","shayari","silence","hayaat"); 
echo $arr[0]; 
echo $arr[1]; 
foreach($arr as $var) { 
    echo $var; 
    echo "\n"; 
} 

這樣:

<?php 
$arr = array("ghazal","shayari","silence","hayaat"); 
echo $arr[0]; 
echo $arr[1]; 
foreach($arr as $var) { 
    echo $var; 
    echo "<br>"; 
} 

如果這並不爲你工作,你總是可以使用pre HTML tagpre標記保留\n換行符,並使它們可見。

如果有幫助,請點擊此問題旁邊的複選框將此答案標記爲正確。

謝謝。 :)

+0

如果你查看源代碼,你_will_看到它們顯示出來 –

+0

@LightnessRacesinOrbit謝謝你指出。答案反映了這一點。 :) – 2013-01-18 03:54:27

1

推測您的PHP腳本正在生成在Web瀏覽器中查看的HTML。而且,正如我們所知,HTML中的無關空白不會在屏幕上呈現。

要麼產生純文本(header("Content-type: text/plain"))或輸出,而不是'\n',一些呈現在HTML(例如<br />)換行符

相關問題