Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.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
在PHP中将\r\n文本区域转换为换行符(不使用<;br>;标记)_Php_Html_Mysql - Fatal编程技术网

在PHP中将\r\n文本区域转换为换行符(不使用<;br>;标记)

在PHP中将\r\n文本区域转换为换行符(不使用<;br>;标记),php,html,mysql,Php,Html,Mysql,我在这个网站和谷歌上搜索过,没有找到一个可行的解决方案。有解决办法,但似乎没有一个对我有效 我有一个文本区域,用作表单的输入,以及显示要编辑的表单时的输出(可编辑)。因此,我有一个文本区域,如下所示: echo '<textarea>'.$resolution.'</textarea>'; 现在,我发现使用stripslashes删除额外的斜杠很简单,如下所示: $resolution = stripslashes($resolution); …但是,现在的输出是:

我在这个网站和谷歌上搜索过,没有找到一个可行的解决方案。有解决办法,但似乎没有一个对我有效

我有一个文本区域,用作表单的输入,以及显示要编辑的表单时的输出(可编辑)。因此,我有一个文本区域,如下所示:

echo '<textarea>'.$resolution.'</textarea>';
现在,我发现使用stripslashes删除额外的斜杠很简单,如下所示:

$resolution = stripslashes($resolution);
…但是,现在的输出是:

This is a\r\n\r\ntest.
我不知道如何将\r\n转换为换行符(即,不使用
标记,因为这只会在不支持html的textarea中输出
。我尝试了以下所有方法,但均无效:

//Effort 1
$resolution = trim($resolution);

//Effort 2
$resolution = nl2br($resolution);

//Effort 3
$resolution = htmlentities($resolution);

//Effort 4
$resolution = preg_replace("\\r\\n","<br>",$resolution);
//努力1
$resolution=trim($resolution);
//努力2
$resolution=nl2br($resolution);
//努力3
$resolution=htmlentities($resolution);
//努力4
$resolution=preg_replace(“\\r\\n”、“
”、$resolution);

我现在完全不知所措。有人能解释一下吗?

只要在str\u replace上用双引号就行了

str_replace('\r',"\r",str_replace('\n',"\n",$resolution));

或者如果你真的在处理双重反斜杠:

str_replace('\\\\r',"\r",str_replace('\\\\n',"\n",$resolution));

只需在str_replace上使用双引号

str_replace('\r',"\r",str_replace('\n',"\n",$resolution));

或者如果你真的在处理双重反斜杠:

str_replace('\\\\r',"\r",str_replace('\\\\n',"\n",$resolution));

PHP有两种不同的字符串构建模式。第一种使用单引号,并且绝对不会进行变量或特殊字符替换。这就是您所使用的

第二种方法是在双引号字符串中嵌入变量,它应该可以工作:

$text = str_replace("\\", "\", $text);
echo "<textarea>$text</textarea>";
$text=str\u替换(“\\”、“\”、$text);
回显“$text”;

\r
\n
现在应该是输出中的活动回车符和换行符,而不是字符“斜杠”,然后是“r”或“n”

PHP有两种不同的字符串生成模式。第一种模式使用单引号,并且绝对不会进行变量或特殊字符替换。这就是您正在使用的

第二种方法是在双引号字符串中嵌入变量,它应该可以工作:

$text = str_replace("\\", "\", $text);
echo "<textarea>$text</textarea>";
$text=str\u替换(“\\”、“\”、$text);
回显“$text”;

\r
\n
现在应该是输出中的活动回车符和换行符,而不是字符“斜杠”然后是一个“r”或“n”

我不确定,但感觉这个问题已经得到了回答——基本上:让CSS处理换行,而不是尝试将
放在
标记之间。如果您将数据存储在数据库中,您可能希望将insert放在
标记之间aswell@Mike“Pomax”Kamerman如何移除\r\n即使我可以在CSS中处理它?@SuperDJ如果我有这是一个
测试。作为我的输出,我当然可以尝试。但是,我得到的只是一个\r\n\r\n测试。或者(如果使用上面列出的两种方法,我不会得到任何可能的重复,我不确定,但感觉这已经得到了回答——基本上:让CSS处理换行,而不是尝试将
放在
标记之间。如果您将数据存储在数据库中,您可能希望将insert放在
之间。)标签aswell@Mike“Pomax”Kamerman如何删除\r\n即使我可以在CSS中处理它?@SuperDJ如果我有这是一个
测试。作为我的输出,我当然可以尝试。但是,我得到的只是一个\r\n\r\n测试。或者(如果使用上面列出的两种方法,我不会得到任何可能重复的好答案,但是使用数组而不是两个函数调用。这样更有效。好答案,但是使用数组而不是两个函数调用。这样更有效。