$text = "This  contans    white space   .";
$matches = preg_split("/(\s+)/",$text,-1, PREG_SPLIT_DELIM_CAPTURE);
echo implode('',$matches);

try that

jack
-----Original Message-----
From: Garth Dahlstrom [mailto:[EMAIL PROTECTED]] 
Sent: Friday, July 20, 2001 7:45 AM
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
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]),'.,/'))
> >   {
> >      //check spelling
> >      //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