RE: [PHP] Verifying a certain amount of numbers
| From: | Ford, Mike [LSS] | Date: | Wed, 16 Jul 2003 14:50:06 +0000 |
| Subject: | RE: [PHP] Verifying a certain amount of numbers | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-155437@lists.php.net to get a copy of this message | ||
> -----Original Message-----
> From: Curt Zirzow [mailto:curt@zirzow.dyndns.org]
> Sent: 16 July 2003 15:17
>
> Justin French <justin@indent.com.au> 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))
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
Cheers!
Mike
---------------------------------------------------------------------
Mike Ford, Electronic Information Services Adviser,
Learning Support Services, Learning & Information Services,
JG125, James Graham Building, Leeds Metropolitan University,
Beckett Park, LEEDS, LS6 3QS, United Kingdom
Email: m.ford@lmu.ac.uk
Tel: +44 113 283 2600 extn 4730 Fax: +44 113 283 3211