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!']

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
>
> On Fri, 20 Jul 2001 09:20:59 +0100 "James Holloway" wrote:
>
>
> > try $wordarr = explode(" ", $string);
> >
> > James.
> >
> > ----- Original Message -----
> > From: "Garth Dahlstrom" <[EMAIL PROTECTED]>
> > Newsgroups: php.general
> > To: <[EMAIL PROTECTED]>
> > Sent: Friday, July 20, 2001 5:43 AM
> > Subject: split on whitespace, preserving whitespace...
> >
> >
> > > Hi all,
> > >
> > > I'm trying to build a spell checker for a web form.
> > > What has got me stumped is being able to do a split
> > > so that whitespace and words are stored as seperate
> > > elements of the same array.
> > >
> > > ideally, I'd use some form of preg_split to put:
> > >
> > > "This  contans    white space   ."
> > >
> > > into an array like:
> > >
> > > $wordsarr = ('This','  ','contans','    ','white',' ','space','
','.')
> > >
> > > So that I can do a a loop as follows:
> > >
> > > for ($i = 0; $i < count($wordarr); $i++)
> > > {
> > >   if (!trim($wordarr[$i]) == "" && !eregi(trim($wordarr[$i]),'.,/'))
> > >   {
> > >      file://check spelling
> > >      file://correct errors
> > >   }
> > >   echo $wordarr[$i];
> > > }
> > > and end up with:
> > > "This  contains    white space   ."
> > >
> > > can a split like this be accomplished using
> > > preg_split or do I need to go through the string
> > > one space at a time in a while loop?
> > >
> > > -Garth
> > >
> > > Northern.CA ===---
> > > http://www.northern.ca
> > >
> > >
> >
>
>
>
>
> --
> 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]
>
>
>


-- 
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