换行问题

时间:2011-02-20 13:50:07

标签: php

我想在用户将数据输入textarea时检测回车符或换行符。处理这个问题的最佳方法是什么?我已经尝试了带有转义字符的str_replace,但是没有检测到回车和换行符。


好吧,说我在textarea中键入以下内容:

The summer was hot this year
but next year is supposed to be cooler.

我想检测CR。在这种情况下,有一个。

7 个答案:

答案 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);
}