多个空行,空格,制表符和新行到一行?

时间:2011-08-01 10:54:12

标签: php

我知道有类似的问题,但我有一些不同的问题!

我需要在PHP中将多个空行转换为一个,但是当我不仅使用New Lines,而且使用Spaces和New Lines时它不起作用。如果有2个或更多空行(带空格并输入'),它们应该仅在一个空行中转换,当它只是新行时(但不是  空白行),它应该保持不变。

我使用了它,但它不适用于空格和新行:

$string = str_replace(array("\r\n", "\r", "\n", "<br />", $string);

echo preg_replace("~<br />(<br\s*/?>[\r\n]*)+~i", "<br /><br />", $string);

我还需要在Windows,Linux和Mac中以这种方式显示它!

3 个答案:

答案 0 :(得分:1)

我认为这些是你唯一需要的东西

$str = str_replace(array("\n", "\r", "\t"), ' ', $str);
$str = preg_replace('/(\s+)/', ' ', $str);

答案 1 :(得分:0)

尝试following

<?php 
$str = ' 



aa 
a 


a 

a 
'; 

for($i = 1;$i< 8;$i++){ 
    $str = str_replace("\r\n\r\n\r\n", "\r\n\r\n", $str); 
    $str = str_replace("\t", '', $str); 
} 

echo $str;

答案 2 :(得分:0)

试试这个

preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $string);