使用
重新编号数组时$arr=array_values($arr); // renumber array
我意识到在一个数组字符串中引入了一个换行符,我不想这样做。
我的字符串来自:
属性 型
到Property
类型
无论如何我都在使用:
$newelement=preg_replace("/[^A-Za-z0-9\s\s+]/"," ",$element);
已经在db插入之前删除不需要的charchters,所以我尝试将其更改为:
$newelement=preg_replace("/[^A-Za-z0-9\s\s+'<br>''<br>''/n''/cr']/"," ",$element);
但是没有变化,并且?换行/换行/回车仍然存在。
我正确地进行了preg_replace吗?
答案 0 :(得分:29)
那个preg看起来有点复杂。然后你在开头有^作为非A-Z ..或换行。所以你不想替换换行符?
怎么样
$newelement=preg_replace("/[\n\r]/","",$element);
或
$newelement=preg_replace("/[^A-Za-z ]/","",$element);
\ s也匹配换行符(\ n)
答案 1 :(得分:5)
这可能也有效:
// char(32) is whitespace
// for CR
$element = strtr($element, chr(13), chr(32));
// for LF
$element = strtr($element, chr(10), chr(32));
答案 2 :(得分:2)
这件事对我有用。
preg_replace("/\r\n\r\n|\r\r|\n\n/", "<br />", $element);
(编辑添加缺失的斜杠)
答案 3 :(得分:1)
它是黑客,但你可以这样做:
$email_body_string = preg_replace("/\=\r\n$/","", $email_body_string);
替换说找到一条以等号结尾的行,并且后面有标准的回车符和换行符。用任何东西替换这些字符(&#34;&#34;)并且等号将消失,它下方的线将被拉起以加入第一行。
现在,这意味着你永远不会有一个以等号结尾的行,这是一种风险。如果您想更好地完成它,请检查包裹(带有等号)的行长度。从行的开头通常大约有73个字符。然后你可以说:
if (strlen(equals sign) == 73)
$email_body_string = preg_replace("/\=\r\n$/","", $email_body_string);