Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
\文本区域中的n在传输到php服务器时得到解释_Php_Special Characters - Fatal编程技术网

\文本区域中的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("\","&#92;",$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 !