Ребята, подскажите как конвертировать unicode в decimal?
Мне нужно из \ud83d\ude05
получить 😅
Спасибо большое.
<?php
function uniord($ch) {
$n = ord($ch{0});
if ($n < 128) {
return $n; // no conversion required
}
if ($n < 192 || $n > 253) {
return false; // bad first byte || out of range
}
$arr = array(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;
?>
https://ideone.com/UYUD9i
Функцию uniord взял здесь.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как вывести из базы в колонке xfields только слово после |label| не во всех ячейках они присутствуют
Я создаю Telegram бота, и вот для теста я хочу, чтобы он отвечал на сообщения в зависимости от контекстаНо вот в чем дело, сообщение от бота не отправится...
Зачем нужен данный синтаксис, ведь тип результата не вычисляется автоматом?