我想在用户将数据输入textarea时检测回车符或换行符。处理这个问题的最佳方法是什么?我已经尝试了带有转义字符的str_replace,但是没有检测到回车和换行符。
好吧,说我在textarea中键入以下内容:
The summer was hot this year
but next year is supposed to be cooler.
我想检测CR。在这种情况下,有一个。
答案 0 :(得分:5)
换行符可以是\ r,\ r \ n或\ n,具体取决于客户端。
$input = preg_replace('/\r\n?/',"\n",$input)
将所有换行标准化为“\ n”,无论它们来自何处。
答案 1 :(得分:3)
你可以用str_replace:
这样做function replace_newline($string) {
return (string)str_replace(array("\r", "\r\n", "\n"), '', $string);
}
答案 2 :(得分:2)
尝试以下方法。它对我来说总是很有魅力。
你需要替换\ n AND \ r,这是因为linux系统和windows系统对换行符使用不同的字符。
$input = str_replace(array("\n","\r"),'',$input);
答案 3 :(得分:2)
有多种方法可以存储新行。
有些系统仅使用"\n"
一些"\r"
,有些只使用"\r\n"
。您需要同时检查"\r"
和"\n"
答案 4 :(得分:0)
或检查chr(10)并替换
答案 5 :(得分:0)
您是否尝试过preg_replace
,因为它可以用于正则表达式替换,然后您可以使用\n
或\r
或您需要的任何组合进行替换,但我相信str_replace也可以正常工作。
答案 6 :(得分:0)
function replace_newlines($string) {
return preg_replace('/\r\n|\r|\n/', '', $string);
}