换行符未从 PHP 中的字符串中删除

Newline not remove from string in PHP

我有一个 Zend 表单,其中描述字段是一个 textarea 元素。

我用换行符 (ENTER) 和 post 填写描述 textarea。在数据库中保存数据时,我尝试删除没有 space 的换行符,因为我必须将它存储在数据库中到 Json。如果我不删除换行符,则 json 未正确解码。

所以经过大量的研发我才知道 JSON 不支持多行字符串。

我试过了

<!-- language: php -->

$string = str_replace("\n", "", $string);
$string = str_replace("\r", "", $string);
$string = preg_replace('/[ \t]+/',  ' ', $string);

如果我通过输入 temp 变量来检查上述解决方案并且它工作正常但不是 Zend 表单 post 数据。

我试过以下解决方案,效果很好

$val = array("\n","\r");
$string = str_replace($val, "", $string);