比如让某人进入textarea:
line
line
我希望它显示为
line line
如果有人进入
line
line
显示为
line
line
Stackoverflow也是这样做的,但我想知道如何使用PHP专门做到这一点。
感谢。
答案 0 :(得分:0)
$input = "";//your input here;
$output = preg_replace('@\n+@', "\n", preg_replace('@(.+)\n{1}(.+)@', '$1 $2', $input));
echo nl2br($output); //result as html
它很简单,使用正则表达式第1次替换仅匹配空格中的一个新行匹配,然后将多个新行符号的匹配替换为仅一个新行
答案 1 :(得分:0)
您可以使用:
$search = ['~(?<!\s)\h*\R\h*+(?!\s)~', '~\h*(\R)\h*+\s+~'];
$replace = [' ', '$1'];
$str = preg_replace($search, $replace, $str);
\R
是一个换行符(无论操作系统如何)。 \h
是一个水平空格,用于修剪前导和尾随空格。 (为了更加严谨,您可以将所有\h
替换为[^\S\r\n]
)
答案 2 :(得分:0)
试试这个:
$text=$_POST['text'];
$array = explode("\n",$text);
$count = count($array);
$j = 0;
foreach($array as $value){
$j++;
if(!empty($value)){
echo $value;
if($j > 1){
echo '<br />'; // OR "/n"
$j = 0;
}
}
}