Re: Remove blank lines from a file
| From: | Nathan Rixham | Date: | Sun, 23 May 2010 20:28:05 +0000 |
| Subject: | Re: Remove blank lines from a file | ||
| References: | 1 2 3 4 5 6 7 8 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-305460@lists.php.net to get a copy of this message | ||
Nathan Rixham wrote:
Robert Cummings wrote:ahh just read the rest of this thread.. icnase it gets a bit pedantic then here's a horizontal white space only one: preg_replace( "/(\h)\h+/im", '\\1', $input ); and vertical only: preg_replace( "/(\v)\v+/im", '\\1', $input ); (spot a pattern?) Best, Nathantedd wrote:preg_replace( "/(\s)\s+/im", '\\1', $input ); :)At 1:02 PM -0400 5/22/10, Robert Cummings wrote:Actually, his comment didn't say double line feeds... his comment said I want THIS to look like THAT. And THIS had a triple line feed and THAT completely normalized it to a single line feed. I realize you misunderstood the problem, but where I work, clients don't think a solution based on incorrect presumptions is a valid solution for a clearly defined problem :)tedd wrote:Rob: It's not broken according to my "given", which was "If that is all (i.e., removing double linefeeds), then this will do it:" My code does exactly what was stated.If that is all (i.e., removing double linefeeds), then this will do it: $text_array = array(); $text_array = explode("\n\n", $input_text); $output_text = implode("\n",$text_array);Sorry tedd, this is broken. It doesn't solve problems with runs of greater than 2 newlines which is even in the example :) I would use the following instead which is also line break agnostic with final output in the style for your system: <?php $data = preg_replace( "#[\r\n]+#", PHP_EOL, $input ); ?> Cheers, Rob.I did not catch there were more than two linefeeds in the OP's problem. Doing more was something I did not address. Also, the solution you provided works better this way: :-) $input = preg_replace( "#[\r\n]+[[:space:]]+[\r\n]+#", "\n", $input ); $input = preg_replace( "#[\r\n]+#", PHP_EOL, $input ); $input = trim( $input );