我想知道如何在php中保留文本区域的所有空格(用于发送到数据库(,然后回显然后稍后返回。我想像堆栈溢出一样做,对于代码,哪个是最好的方法?
现在我使用它:
$text = str_replace(' ', '&nbs p;', $text);
它保留了' '
空格,但我不会用mysql_real_escape
和其他"注入预防"方法一起测试它。
为了更好地理解,我想稍后从 db 回显如下:
function jack(){
var x = "blablabla";
}
谢谢你的时间。
代码块
如果您尝试重新创建代码块,例如:
function test($param){
return TRUE;
}
然后,您应该在html
中使用<pre></pre>
标签:
<pre>
function test($param){
return TRUE;
}
</pre>
作为普通html
即使存在多个空格/换行符/制表符,也只会显示一个空格。pre
标记内部的空间将按原样显示。
目前,您的html
将如下所示:
function test($param){
return TRUE;
}
我建议这是不可取的...
逃避
使用mysql_real_escape
时,会将换行符转换为纯文本'n
或'r'n
。这意味着您的代码将输出如下内容:
function test($param){'n return TRUE;'n}
或
<pre>function test($param){'n return TRUE;'n}</pre>
要解决此问题,您必须将'n
或'r'n
字符串替换为换行符。
假设您将使用pre
标签:
echo preg_replace('#('''r'''n|'''n)#', "'n", $escapedString);
如果要切换到html
换行符,则必须"'n"
切换到<br />
。如果是这种情况,您还想切换
带有
的空格字符 - 我建议使用 pre
标签。
试试这个,效果很好
$string = nl2br(str_replace(" ", " ", $string));
echo "$string";