note 46267 deleted from function.ord by danbrown

From: Date: Tue, 11 Oct 2011 16:15:58 +0000
Subject: note 46267 deleted from function.ord by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-183808@lists.php.net to get a copy of this message
Note Submitter: ng4rrjanbiah at rediffmail dot com ---- [Fixed a bug in my previous note; ord() is missing in first condition] uniord() function like "v0rbiz at yahoo dot com" (Note# 42778), but without using mbstring extension. Note: If the passed character is not valid, it may throw "Uninitialized string offset" notice (may set the error reporting to 0). <?php /** * @Algorithm: http://www1.tip.nl/~t876506/utf8tbl.html * @Logic: UTF-8 to Unicode conversion **/ function uniord($c) { $ud = 0; if (ord($c{0})>=0 && ord($c{0})<=127) $ud = ord($c{0}); if (ord($c{0})>=192 && ord($c{0})<=223) $ud = (ord($c{0})-192)*64 + (ord($c{1})-128); if (ord($c{0})>=224 && ord($c{0})<=239) $ud = (ord($c{0})-224)*4096 + (ord($c{1})-128)*64 + (ord($c{2})-128); if (ord($c{0})>=240 && ord($c{0})<=247) $ud = (ord($c{0})-240)*262144 + (ord($c{1})-128)*4096 + (ord($c{2})-128)*64 + (ord($c{3})-128); if (ord($c{0})>=248 && ord($c{0})<=251) $ud = (ord($c{0})-248)*16777216 + (ord($c{1})-128)*262144 + (ord($c{2})-128)*4096 + (ord($c{3})-128)*64 + (ord($c{4})-128); if (ord($c{0})>=252 && ord($c{0})<=253) $ud = (ord($c{0})-252)*1073741824 + (ord($c{1})-128)*16777216 + (ord($c{2})-128)*262144 + (ord($c{3})-128)*4096 + (ord($c{4})-128)*64 + (ord($c{5})-128); if (ord($c{0})>=254 && ord($c{0})<=255) //error $ud = false; return $ud; } //debug echo uniord('A'); //65 echo uniord("\xe0\xae\xb4"); //2996 ?> HTH, R. Rajesh Jeba Anbiah

« previous php.notes (#183808) next »