Ford, Mike               [LSS] <[EMAIL PROTECTED]> wrote:
> > -----Original Message-----
> > From: Curt Zirzow [mailto:[EMAIL PROTECTED]
> > Sent: 16 July 2003 15:17
> > 
> > Justin French <[EMAIL PROTECTED]> wrote:
> > > If you care about performance at all, try and find away around the 
> > > problem without regular expressions...
> > > 
> > > I tested
> > > 
> > >   if( (strlen($str) == 6) && (is_int($str)) )
> > > 
> > > vs
> > > 
> > >   if(ereg('^[0-9]{6}$',$str))
> > > 
> > > 
> > > ...on my LAN test server with 100000 iterations, and the regexp was 
> > > nearly 2 times slower than the first solution. IMHO, it's 
> > also faster 
> > 
> > Excellent point! I find my self using regex's a bit to often 
> > when there
> > are other solutions available.
> > 
> > btw, have you ever tested the difference between
> > 
> >     if(ereg('^[0-9]{6}$',$str))
> >     if(preg_grep('^[0-9]{6}$',$str))
> 
> The first will work and the second won't?
> 
> Seriously, I think you mean:
> 
>       if (preg_match('/^[0-9]{6}$/', $str))

yea, I havn't used preg_* much, i wasn't aware you needed the //.

> 
> Having said which, a quick run on my (rather ancient and slow Windows NT)
> system with the above tests and 1,000,000 iterations of each reveals:
> 
>     Succeeding ereg: 21.1589909792
>     Succeeding preg_match(): 14.6125850677
> 
>     Failing ereg(): 21.2370660305
>     Failing preg_match(): 13.5106118917

I wonder if preg treats [0-9] vs. \d differently:
      if (preg_match('/^\d{6}$/', $str))

> 
> Cheers!
> 
> Mike

Thanks,

Curt.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to