doumenshi1475 2014-07-01 10:28
浏览 61
已采纳

将textarea保存为session和echo,没有可见的换行符格式

I'm echoing out a multi-lined session string into a textarea if it's set:

<textarea><?php if (isset($_SESSION['saved_text'])) { echo nl2br($_SESSION['saved_text']); } ?></textarea>

Such as:

"Line 1
Line 2
Line 3"

And when it echoes out the session into the textarea it comes back with:

"Line 1
Line 2
Line 3"

Yet I want it how it was formatted in the string, with the line-breaks, but not explicitly showing them as " " etc. How do I do this?

  • 写回答

1条回答 默认 最新

  • dongxu2398 2014-07-01 10:48
    关注

    You dont need nl2br for displaying new lines it in textarea.

    <textarea><?php if (isset($_SESSION['saved_text'])) { echo $_SESSION['saved_text']; } ?></textarea>
    

    This will work. or you can use htmlspecialchars() if the text contains some special characters:

    <textarea><?php if (isset($_SESSION['saved_text'])) { echo htmlspecialchars($_SESSION['saved_text']); } ?></textarea>
    

    UPDATE

    It seems the have bee escaped before saving in DB and now they are just characters of the text so to remove them you need to remove them as an character you can use str_ireplace() for this

    <textarea><?php if (isset($_SESSION['saved_text'])) { echo str_ireplace("\\
    ", "
    ", $_SESSION['saved_text']); } ?></textarea>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?