note 92871 deleted from function.ctype-alnum by hholzgra

From: Date: Thu, 02 Aug 2012 15:54:23 +0000
Subject: note 92871 deleted from function.ctype-alnum by hholzgra
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-189884@lists.php.net to get a copy of this message
Note Submitter: Josip Rodin ---- There doesn't actually seem to be a performance loss compared to using regexes. For example: <?php $sUser = 'my_username01'; $time_start1 = microtime(true); $aValid = array('-', '_'); $ret1 = ctype_alnum(str_replace($aValid, '', $sUser)); $time_end1 = microtime(true); $time1 = $time_end1 - $time_start1; printf("Checked it with ctype_alnum and got %d in %.10f seconds\n", print_r($ret1, true), $time1); $time_start2 = microtime(true); $ret2 = preg_match('/^[\w-]+$/', $sUser); $time_end2 = microtime(true); $time2 = $time_end2 - $time_start2; printf("Checked it with preg_match and got %d in %.10f seconds\n", print_r($ret2, true), $time2); ?> This returns: % time php ctype_alnum.php Checked it with ctype_alnum and got 1 in 0.0000379086 seconds Checked it with preg_match and got 1 in 0.0001120567 seconds php ctype_alnum.php 0,01s user 0,01s system 84% cpu 0,024 total % time php ctype_alnum.php Checked it with ctype_alnum and got 1 in 0.0000400543 seconds Checked it with preg_match and got 1 in 0.0001108646 seconds php ctype_alnum.php 0,00s user 0,02s system 98% cpu 0,024 total % time php ctype_alnum.php Checked it with ctype_alnum and got 1 in 0.0000391006 seconds Checked it with preg_match and got 1 in 0.0001142025 seconds php ctype_alnum.php 0,02s user 0,01s system 98% cpu 0,024 total ctype_alnum() seems to be consistently faster. I'm guessing that the preg engine initialization induces a bit of overhead.

« previous php.notes (#189884) next »