0

我想知道如何在 php 中保留文本区域的所有空格(用于发送到数据库),然后回显,然后再返回。对于代码,我想像 stackoverflow 那样做,这是最好的方法吗?

现在我使用这个:

$text = str_replace(' ', '&nbs p;', $text);

它保留了' '空格,但我不会mysql_real_escape与其他“注入防止”方法一起测试它。

为了更好地理解,我想稍后从 db 中回显,例如:

 function jack(){
    var x = "blablabla";
 }

谢谢你的时间。

4

2 回答 2

1

代码块

如果您只是尝试重新创建代码块,例如:

function test($param){
    return TRUE;
}

然后你应该<pre></pre>在你的标签中使用html

<pre>
    function test($param){
        return TRUE;
    }
</pre>

html即使存在多个空格/换行符/制表符,纯文本也只会显示一个空格。标签内的pre空格将按原样显示。

目前,您html将看起来像这样:

function test($param){
&nbsp;&nbsp;&nbsp;&nbsp;return TRUE;
}

我建议这是不可取的......

逃跑

使用时,mysql_real_escape您会将换行符转换为纯文本\n\r\n. 这意味着您的代码将输出如下内容:

function test($param){\n return TRUE;\n}

或者

<pre>function test($param){\n    return TRUE;\n}</pre>

要解决这个问题,您必须将\nor\r\n字符串替换为换行符。

假设您要使用pre标签:

echo preg_replace('#(\\\r\\\n|\\\n)#', "\n", $escapedString);

如果要切换到html换行符,则必须切换"\n"<br />. 如果是这种情况,您还想 &nbsp;- 我建议使用pre标签来切换空格字符。

于 2013-09-28T17:19:58.613 回答
1

试试这个,效果很好

$string = nl2br(str_replace(" ", " &nbsp;", $string));
echo "$string";
于 2015-01-05T22:47:01.443 回答