note 92871 added to function.ctype-alnum

From: Date: Wed, 12 Aug 2009 16:13:17 +0000
Subject: note 92871 added to function.ctype-alnum
Groups: php.notes 
Request: Send a blank email to php-notes+get-159373@lists.php.net to get a copy of this message
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. ---- Server IP: 193.198.184.18 Probable Submitter: 161.53.12.209 ---- Manual Page -- http://www.php.net/manual/en/function.ctype-alnum.php Edit -- https://master.php.net/note/edit/92871 Del: integrated -- https://master.php.net/note/delete/92871/integrated Del: useless -- https://master.php.net/note/delete/92871/useless Del: bad code -- https://master.php.net/note/delete/92871/bad+code Del: spam -- https://master.php.net/note/delete/92871/spam Del: non-english -- https://master.php.net/note/delete/92871/non-english Del: in docs -- https://master.php.net/note/delete/92871/in+docs Del: other reasons-- https://master.php.net/note/delete/92871 Reject -- https://master.php.net/note/reject/92871 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#159373) next »