Re: how to strip empty lines out of a txt using preg_replace()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Sep 4, 2009 at 10:37 AM, Ralph Deffke <ralph_deffke@xxxxxxxx> wrote:

> the problem is some have got \t\n
> some are just \n\n....\n
>
> using PHP_EOL is a must
>
> I thing must be something with the /../sm attributes to the regex, spend
> like half an hour, but didn't get it, I'm running against a dead line,
> doesn't seem to be that easy if regex is not the everydays need u have
>
>
> "Ashley Sheridan" <ash@xxxxxxxxxxxxxxxxxxxx> wrote in message
> news:1252071327.24700.152.camel@xxxxxxxxxxxx
> > On Fri, 2009-09-04 at 15:28 +0200, Ralph Deffke wrote:
> > > ok
> > >  preg_replace( "/^\s*$/m", "", $somestring)
> > > does not take empty lines out
> > >
> > > "Ashley Sheridan" <ash@xxxxxxxxxxxxxxxxxxxx> wrote in message
> > > news:1252069539.24700.150.camel@xxxxxxxxxxxx
> > > > On Fri, 2009-09-04 at 14:58 +0200, Ralph Deffke wrote:
> > > > > Hi all, I'm a bit under stress, maybe somebody knows the regex on a
> > > snap.
> > > > > using PHP_EOL would be great.
> > > > >
> > > > > thanks
> > > > > ralph_deffke@xxxxxxxx
> > > > >
> > > > >
> > > > >
> > > > The regex that would match a line containing only whitespace would
> look
> > > > like this:
> > > >
> > > > ^\s*$
> > > >
> > > > Thanks,
> > > > Ash
> > > > http://www.ashleysheridan.co.uk
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > Are the lines actually whitespace, or are they actually <br/> tags that
> > are inserting lines to format the page for HTML display?
> >
> > Thanks,
> > Ash
> > http://www.ashleysheridan.co.uk
> >
> >
> >
>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
The PHP_EOL is system dependent. If you want a solution that works on every
type of file you have to code it yourself. Here you have a function made
some time ago.
Maybe you can improve it.

If you want the result as a text format you can implode( PHP_EOL, $buffer )
Hope this helps you.

function explode($code)
{
    $lines = array();
    $buffer = '';

    for($i=0, $len = strlen($code); $i<$len; ++$i)
        switch( $code{$i} )
        {
            case "\r":
            case "\n":
                if( $i+1 == $len )
                    break 2;

                if( "\r" == ($next = $code{ $i+1 }) || "\n" == $next )
                {
                    ++$i;
                }

                $lines[] = $buffer;
                $buffer = '';
                break;
            default:
                $buffer .= $code{$i};
        }

    if( '' !== $buffer );
        $lines[] = $buffer;

    return $lines;
}


-- 
Martin Scotta

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux