\文本区域中的n在传输到php服务器时得到解释
所以我进去了\文本区域中的n在传输到php服务器时得到解释,php,special-characters,Php,Special Characters,所以我进去了 你好\n\n我的朋友\n 进入文本区域。 然后我将它存储到db中,检索它,得到的是 hello my friend ! 但我不希望\n转换为实际的换行符 这是我的示例设置: <textarea name="mytextarea">$mytext</textarea> 取回 $descSQL = " SELECT text FROM mytable;" $descRes = mysql_query($descSQL, $c
你好\n\n我的朋友\n代码>
进入文本区域。
然后我将它存储到db中,检索它,得到的是
hello
my friend
!
但我不希望\n转换为实际的换行符
这是我的示例设置:
<textarea name="mytextarea">$mytext</textarea>
取回
$descSQL = " SELECT text
FROM mytable;"
$descRes = mysql_query($descSQL, $conn) or die(mysql_error());
$descRow = mysql_fetch_array($descRes);
$mytext = $descRow["text"];
我错过了什么?
textarea必须复制并包含以下内容:
\n
在检索数据之后,您可以像这样使用stru替换
$mytext = str_replace("\","\",$mytext);
如果使用此代码,将用其html实体替换斜杠
编辑:或对整个字符串使用htmlentities。您需要用另一个反斜杠来转义反斜杠。很有趣,对吧
因此,在您提交文本后,请执行以下操作:
$text = str_replace('\\', '\\\\', $text);
因此,您将有以下几点:
hello \\n \\n my friend \\n !
当您将它插入数据库时,它看起来就像一个只有一个反斜杠的字符串您实际键入的\n
?此外,请停止使用PHP的mysql\uz
函数。它们已被弃用,很快就会消失。重新开始使用函数。@dagon是的,这就是我想要的,在sql注入之外,这是不可能的范围,你为什么要打印\n@KamalSalehPlantUML读取文本以绘制活动图。@squeamishossifrage使用mysql\uuz
函数是不安全的,但这并不意味着答案应该被否决,因为它仍然解决了替换文本区域中的换行符的问题。@squeamishossifrage我不记得问过sql了我试着使用echo stru替换(“\\”,“&&92;”,“a\n b\n c”);回显“a\n b\n c”;echo htmlspecialchars(“a\n b\n c”,ENT_COMPAT,“ISO-8859-1”);回音htmlentities(“a\n b\n c”)代码>打开。似乎什么也不起作用。我发现问题在于存储/检索\n
。它们不会被存储为\n
,但是作为实际的换行符,您知道在哪些情况下会发生这种情况,哪些不会?例如,采用什么样的数据库设置或其他方法来避免这种情况
hello \\n \\n my friend \\n !