Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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字符串中删除新行和返回?_Php_String_Newline - Fatal编程技术网

如何从php字符串中删除新行和返回?

如何从php字符串中删除新行和返回?,php,string,newline,Php,String,Newline,php变量包含以下字符串: <p>text</p> <p>text2</p> <ul> <li>item1</li> <li>item2</li> </ul> 有人知道如何解决这个问题吗?您需要将\n放在双引号中。在单引号中,它被视为两个字符\',后跟'n' 你需要: $str = str_replace("\n", '', $str); 更好的选择是使用PHP\u EOL

php变量包含以下字符串:

<p>text</p>
<p>text2</p>
<ul>
<li>item1</li>
<li>item2</li>
</ul>

有人知道如何解决这个问题吗?

您需要将
\n
放在双引号中。
在单引号中,它被视为两个字符
\'
,后跟
'n'

你需要:

$str = str_replace("\n", '', $str);
更好的选择是使用
PHP\u EOL
作为:

$str = str_replace(PHP_EOL, '', $str);

您必须将
\n
\r
包装在
中,而不是
'
中。使用单引号时,将不会解释转义序列(除了
\'
\\

:

如果字符串用双引号(“)括起来,PHP将解释 特殊字符的更多转义序列:

  • \n换行符(ASCII格式的LF或0x0A(10))

  • \r回车符(ASCII格式的CR或0x0D(13))\

  • (……)

这应该是

str_replace("\n", '', $str); str_replace("\r", '', $str); str_replace("\r\n", '', $str); str_替换(“\n”,“$str”); str_替换(“\r”,”$str); str\u替换(“\r\n”,”$str);
要从字符串中删除新行,请执行以下代码

$newstring = preg_replace("/[\n\r]/","",$subject); 

功能性更强(易于在任何地方使用):

使用PHP_EOL作为搜索替换参数也是一个好主意!值得称赞。

正确的输出:

'{"data":[{"id":"1","reason":"hello\\nworld"},{"id":"2","reason":"it\\nworks"}]}'

function json_entities( $data = null )
{           
    //stripslashes
    return str_replace( '\n',"\\"."\\n",
        htmlentities(
            utf8_encode( json_encode( $data)  ) , 
            ENT_QUOTES | ENT_IGNORE, 'UTF-8' 
        )
    );
}
替换字符串:

$str = str_replace("\n", '', $str);
你也喜欢, (%n, %t,, 所有特殊字符、数字、字符等)


这意味着你可以在字符串中替换任何东西。

你可以将字符串数组传递给
str\u replace
,这样你就可以在一条语句中完成所有操作:

$content = str_replace(["\r\n", "\n", "\r"], "", $content);

PHP\u EOL确实不起作用。PHP无法在str\u replace中正确找到它们。为了正确显示html,我必须这样做:用
替换\r\n(这是Windows下的CRLF),然后用
替换\n(这是Linux下的LF),最后,用空字符串替换\r(这应该没有任何意义)事实上,
PHP\u EOL
不起作用。应该是
[“\r\n”、“\r”、“\n”]
。你真的需要
“\r\n”
中的
”\r\n”
?它已经可以全局删除
\r
和\n`无处不在,对吗?FWIW,在PHP7中,我能够使用
$str=str\EOL替换(PHP\u,,$str)
并且它成功地工作了。@JustCarty可能在您的特定情况下工作,但它假设
$str
的值是在运行脚本的系统的同一平台上创建的。如果您混合使用windows和unix,您将度过糟糕的一天。感谢大家!+1这根本不是这个问题的答案。事实上,问题和答案唯一的共同点是换行符“\n”literal和使用
str\u replace
,尽管目的完全不同。您有理由对我有效,因为我使用TextArea,有时需要换行符,并且此数据由angular Initng发送。您可能会发现有帮助,如中所示。它删除s所有类型的换行符,包括Unicode字符。只需使用
而不是
。这很重要。我以前使用单引号
,文本总是替换为
“\n”
(字符串类型)。如果您对此感到困惑,请记住……在laravel中,从产品描述中删除换行符非常有效。这只会从begging和字符串末尾删除换行符,而不会从中间删除换行符。请在您的答案中添加一些解释,以便其他人可以从中学习
function replace_carriage_return($replace, $string)
{
    return str_replace(array("\n\r", "\n", "\r"), $replace, $string);
}
'{"data":[{"id":"1","reason":"hello\\nworld"},{"id":"2","reason":"it\\nworks"}]}'

function json_entities( $data = null )
{           
    //stripslashes
    return str_replace( '\n',"\\"."\\n",
        htmlentities(
            utf8_encode( json_encode( $data)  ) , 
            ENT_QUOTES | ENT_IGNORE, 'UTF-8' 
        )
    );
}
$str = str_replace("\n", '', $str);
$content = str_replace(["\r\n", "\n", "\r"], "", $content);
$str = "Hello World!\n\n";
echo chop($str);

output : Hello World!