2013-12-08 121 views
0

我想發佈一個文本區域,我將其存儲到我的數據庫中,並且我想保留所有的空白區域,以便我可以查詢它並在不同的地方顯示。這裏的問題是,當這個表單提交時,整個textarea會作爲一個單獨的行發送。我已經研究過htmlspecialchar和urlencode,但是如果這裏甚至是正確的地方使用它們,那麼這怎麼可以應用呢?如何保留textarea表單文章中的空格和格式?

<form name = "exam" action="takeTest.php" method="post"> 
    <textarea name="pa1" required rows=10 cols=55>public int add(int a, int b){ 






    } 
    </textarea> 
    <input type="submit"> 
</form> 

編輯

嘗試預標籤,但這些只是顯示爲,除了代碼的默認文本。我認爲添加\ n標籤會在代碼通過單元測試時搞亂代碼,但我會試試它。

我的表單的這一部分是試圖模擬codebat在做什麼的編程部分。

+1

每一行都將被'\ N'來分隔,如果這是什麼意思? –

+0

這實際上取自我的php代碼,所有這些實際上都是在$ pageContent。='之後我在後面回覆$ pageContent – Garvin

+0

謝謝你的鏈接mario!去試試

標籤 –
                        
                            
    Garvin
                                
                            
                        
                    

回答

2

像@Danny說的那樣,行分開,但沒有HTML換行符,如您所料。

要將換行符(\n)轉換爲HTML換行符(<br>),只需使用nl2br;所以你可以在數據庫中使用正確的HTML中的字符串。

它轉換:

Hey\nthere 

到:

Hey<br>there 

其瀏覽器呈現,如:

Hey 
there 
+0

恐怕它可能會混亂單元測試,因爲我將在編譯後運行輸入,但我會給它一個 – Garvin

+0

這就是它的意圖。如果您需要呈現HTML,請使用該功能,如果您需要其他功能,請自行創建(可能使用簡單的字符串替換),但底線是線條在那裏,您不必擔心這一點。 – Shomz

+0

只需閱讀您的更新:不需要放置任何\ n標籤,就像您所說的。他們自動在那裏。我在說,如果你想用HTML輸出,只需使用'echo nl2br($ your_text_var);'。 – Shomz

0

插入之前分貝,PHP有一個功能nl2br()。 那麼,如果你能呼應身體上的數據只是在textarea的其他打印編輯此再次使用這個

function br2nl($string) 
{ 
    return preg_replace('/\<br(\s*)?\/?\>/i', "\n", $string); 
} 
相關問題