PHP过滤字符串输入,截断所有换行符,1个字符

PHP过滤字符串输入,截断所有换行符,1个字符,php,html,input,filter,Php,Html,Input,Filter,我是用PHP写的 有一个用户字符串输入,我想切断所有换行符,一行中超过1个字符(避免…) 例如: I am a SPaMmEr! 将成为: I am a SPaMmEr! 或 同样这个怎么样: $str = str_replace(array("\n", "\r"), '', $str); 其中$str是您的用户输入 编辑: 很抱歉,不管怎样,此代码都将删除所有行,但仍然可能会派上用场。\n是换行符的有效输入,以及\r\n和\r\n。运行正则表达式或str_replace将\r和\

我是用PHP写的

有一个用户字符串输入,我想切断所有换行符,一行中超过1个字符(避免


…)

例如:

I am a




SPaMmEr!
将成为:

I am a
SPaMmEr!

同样

这个怎么样:

$str = str_replace(array("\n", "\r"), '', $str);
其中$str是您的用户输入

编辑


很抱歉,不管怎样,此代码都将删除所有行,但仍然可能会派上用场。

\n是换行符的有效输入,以及\r\n和\r\n。运行正则表达式或str_replace将\r和\n的所有组合替换为\n,您可以使用explode(“\n”,$string),并检查数组的所有项是否有一个字符或空字符。
您可以删除这些内容,或者用重复字符的单个实例替换它,例如,我对新段落使用单个换行符,这样会破坏这些内容。

为什么不对此使用regexp:

## replace 1 or more new line symbols with single new line symbol
$empty_lines_trimmed = preg_replace('"(\r?\n)+"', "\n", $empty_lines);

以这种方式获取所有行(如果您希望捕获dos、mac和unix行馈送):

可以使用以下方法过滤包含多个字符的行:

或者在整个过程中使用正则表达式:

preg_match_all('/^.{2}.*$/', $string, $matches);
$lines = $matches[0];
或者,如果不需要包含所有剩余行的数组,可以通过一次调用删除不需要的字符串:

$string = preg_replace('/^.?$\n/m', '', $string);

一行中超过1个字符意味着什么?要转义HTML标记,可以将它们放在反勾中。(`)
$lines = preg_grep('/^.{2}/', $lines);
preg_match_all('/^.{2}.*$/', $string, $matches);
$lines = $matches[0];
$string = preg_replace('/^.?$\n/m', '', $string);