从数据库中提取的数据中删除“\ n”时遇到了一些奇怪的困难。
数据是一封电子邮件,并由输入它的系统存储在整个电子邮件中。
当我显示它时,我试图使用以下内容删除这些\ n:
$htmlbody = str_replace("\n", "", $message['htmlbody']);
或
nl2br($message['htmlbody']);
但两个命令仍然返回一个充满\ n的字符串。
变量$ message ['htmlbody']包含一个类似\n\n <div>\n Example Data \n </div>\n
的字符串,这些数据在传递给str_replace后保持不变。
这些数据最初来自一个JSON webhook,它已用\ n替换了HTML电子邮件中的所有换行符。我也可以控制放入数据库的数据,并尝试对原始数据使用上述操作,结果相同。
对可能导致这种情况的任何想法?
干杯。
答案 0 :(得分:1)
在Google搜索中找到了这个
$message = preg_replace("/\n|\r/", " ", $message['htmlbody']);
将使用空格替换换行符。
答案 1 :(得分:1)
首先替换\ r \ n然后\ r \ n然后\ n使用它:
$message['htmlbody'] = preg_replace(array("/\r\n/", "/\r/", "/\n/"), array(' ',' ', ' '), $message['htmlbody']);
答案 2 :(得分:0)
$message['htmlbody'] = str_replace("\n", "", $message['htmlbody']);
如果您尝试修改的字符串显示\n
,并且未被解释为新行,请使用:
$message['htmlbody'] = str_replace("\\n", "", $message['htmlbody']);
答案 3 :(得分:0)
尝试将$message
传递给stripslashes
。有可能你有\\ n \\ r,这是阻止正确转义的双斜线...
$message['htmlbody'] = nl2br(stripslashes($message['htmlbody']))