I thought, Jack's solution should work (with php 4.05 and above), but
however if you say it doesn't then there is another solution. I don't find
it very hmm "good", but it should work (I cannot test it, because a cant
rund php on this machine):

$text="your  space     containing  text";
$splittext = new Array();
while ($text){
    preg_match("/[^\s]+",$text);
    if ($machtes[1]){$splittext[]=$matches[1];}
    preg_replace("/$matches[1]/","",$text);

    preg_match("/[\s]+",$text);
    if ($machtes[1]){$splittext[]=$matches[1];}
    preg_replace("/$matches[1]/","",$text);
}


If it doesn't work, I'm sorry, but currently I'm not able to test it. But I
hope, you can see the idea behind it.

best regards
Stefan Rusterholz, [EMAIL PROTECTED]


----- Original Message -----
From: "Garth Dahlstrom" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Friday, July 20, 2001 4:13 PM
Subject: Re: [PHP] Re: split on whitespace, preserving whitespace... (a
rephrase of the question)


> On Fri, 20 Jul 2001 15:34:48 +0200 "Stefan Rusterholz" wrote:
>
> > If you'r using PHP >4 use preg_split. (works also with php 3 >= 3.09)
> > see http://www.php.net/manual/en/function.preg-split.php for detailed
> > information.
> > The split pattern you'd need is:
> > $sometext2split = "hello world  with    a  lot   of    whitespaces!";
> > $myarray = preg_split ("/\s+/",$sometext2split);
> >
> > you should get
> > $myarray := ['hello', 'world', 'with', 'a', 'lot', 'of', 'whitespaces!']
>
> That's not what I'm after though....
> perhaps I should rephrase the question...
>
> I want to do a split/explode on:
> "hello world  with    a  lot   of    whitespaces!"
> on spaces... in such a manner that when I join/implode
> it back together I get:
> "hello world  with    a  lot   of    whitespaces!"
> not:
> "hello world with a lot of whitespaces missing!"
>
> I'd be happy if I could even get:
> $myarray = ["hello ", "world  ","with    ","a  ","lot   ",
> "of    ","whitespaces!"]
>
> 'cause I could spell check based on trimming the entry.
>
> -Garth
>
> Northern.CA ===--
> http://www.northern.ca
> Canada's Search Engine
>
>
>
> >
> > But remark: \t (tabs) will also count as whitespace, but not \n and
> > \r. See
> > docu for more informations
> >
> > Hope, it helps
> > best regards
> > Stefan Rusterholz, [EMAIL PROTECTED]
> >
> >
> > ----- Original Message -----
> > From: "Garth Dahlstrom" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Cc: <[EMAIL PROTECTED]>
> > Sent: Friday, July 20, 2001 1:44 PM
> > Subject: [PHP] Re: split on whitespace, preserving whitespace...
> >
> >
> > > > try $wordarr = explode(" ", $string);
> > >
> > > mmm... yeah...  That's what I had before
> > > (acutally I was using the alias split)...
> > > it does NOT however preserve the areas
> > > of white space.
> > >
> > > Instead the target of:
> > > > > $wordsarr = ('This','  ','contans','    ','white',' ','space','
> > ','.')
> > >
> > > You get:
> > > > > $wordsarr = ('This','','contans','','white','space','','.')
> > >
> > > which has totally destroyed the whitespace I'm trying to
> > > keep intacted.
> > >
> > > I'm starting to wonder if maybe preg_match_all is better
> > > suited for something like this... just no idea how to do
> > > the regex that matches words & spaces and populates them
> > > into the array.
> > >
> > > maybe something like: echo
> > preg_match_all("|(\s+)?(.*)?(\s+)?|",$test,$arr);
> > > sigh... I dunno regex.
> > >
> > > -Garth
> > >
> > > Northern.CA ===--
> > > http://www.northern.ca
> > > Canada's Search Engine
> > >
>
>
>
>


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to