<?php
function uniord($ch)
{
if ($n < 128) {
return $n; // no conversion required
}
if ($n < 192 || $n > 253) {
return false; // bad first byte || out of range
}
1 => 192, // byte position => range from
2 => 224,
3 => 240,
4 => 248,
5 => 252
);
foreach ($arr as $key => $val) {
if ($n >= $val) { // add byte to the 'char' array
$char[] = ord($ch{$key}) - 128; $range = $val;
} else {
break; // save some e-trees
}
}
$retval = ($n - $range) * pow(64, sizeof($char));
foreach ($char as $key => $val) {
$pow = sizeof($char) - ($key + 1); // invert key $retval += $val * pow(64, $pow); // dark magic }
return $retval;
}
$decimal = '&#' . uniord
(json_decode('"\ud83d\ude05"')) . ';'; echo $decimal;
?>
PD9waHAKZnVuY3Rpb24gdW5pb3JkKCRjaCkKewogICAgCiAgICAkbiA9IG9yZCgkY2h7MH0pOwogICAgCiAgICBpZiAoJG4gPCAxMjgpIHsKICAgICAgICByZXR1cm4gJG47IC8vIG5vIGNvbnZlcnNpb24gcmVxdWlyZWQgCiAgICB9CiAgICAKICAgIGlmICgkbiA8IDE5MiB8fCAkbiA+IDI1MykgewogICAgICAgIHJldHVybiBmYWxzZTsgLy8gYmFkIGZpcnN0IGJ5dGUgfHwgb3V0IG9mIHJhbmdlIAogICAgfQogICAgCiAgICAkYXJyID0gYXJyYXkoCiAgICAgICAgMSA9PiAxOTIsIC8vIGJ5dGUgcG9zaXRpb24gPT4gcmFuZ2UgZnJvbSAKICAgICAgICAyID0+IDIyNCwKICAgICAgICAzID0+IDI0MCwKICAgICAgICA0ID0+IDI0OCwKICAgICAgICA1ID0+IDI1MgogICAgKTsKICAgIAogICAgZm9yZWFjaCAoJGFyciBhcyAka2V5ID0+ICR2YWwpIHsKICAgICAgICBpZiAoJG4gPj0gJHZhbCkgeyAvLyBhZGQgYnl0ZSB0byB0aGUgJ2NoYXInIGFycmF5IAogICAgICAgICAgICAkY2hhcltdID0gb3JkKCRjaHska2V5fSkgLSAxMjg7CiAgICAgICAgICAgICRyYW5nZSAgPSAkdmFsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGJyZWFrOyAvLyBzYXZlIHNvbWUgZS10cmVlcyAKICAgICAgICB9CiAgICB9CiAgICAKICAgICRyZXR2YWwgPSAoJG4gLSAkcmFuZ2UpICogcG93KDY0LCBzaXplb2YoJGNoYXIpKTsKICAgIAogICAgZm9yZWFjaCAoJGNoYXIgYXMgJGtleSA9PiAkdmFsKSB7CiAgICAgICAgJHBvdyA9IHNpemVvZigkY2hhcikgLSAoJGtleSArIDEpOyAvLyBpbnZlcnQga2V5IAogICAgICAgICRyZXR2YWwgKz0gJHZhbCAqIHBvdyg2NCwgJHBvdyk7IC8vIGRhcmsgbWFnaWMgCiAgICB9CiAgICAKICAgIHJldHVybiAkcmV0dmFsOwp9CiRkZWNpbWFsID0gJyYjJyAuIHVuaW9yZChqc29uX2RlY29kZSgnIlx1ZDgzZFx1ZGUwNSInKSkgLiAnOyc7CmVjaG8gJGRlY2ltYWw7Cj8+