Добрый день, подскажите пожалуйста как мне c помощью php конвертировать строку в 10ю кодировку и по надобности обратно ?
я имею ввиду вот как сдесь http://easywebscripts.net/html/spec_char.php
понаходил функции только которые кавычки и угловые скобки преобразуют, а буквы латинские и русские - нет. Спасибо.
Первая функция uniord возвращает десятичный код unicode-символа, а функция str_split_unicode разбивает unicode-строку на массив символов.
Проходим циклом по символам и кодируем их в нужный формат. Получить обратно строку можно с помощью метода html_entity_decode.
<?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;
}
function str_split_unicode($str, $l = 0)
{
if ($l > 0) {
$ret = array();
$len = mb_strlen($str, "UTF-8");
for ($i = 0; $i < $len; $i += $l) {
$ret[] = mb_substr($str, $i, $l, "UTF-8");
}
return $ret;
}
return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
}
$str = 'Привет, world!';
$new_str = '';
foreach (str_split_unicode($str) as $ch)
$new_str .= '&#' . uniord($ch) . ';';
echo $new_str . "\n" . html_entity_decode($new_str);
?>
Вывод:
Привет, world!
Привет, world!
http://sandbox.onlinephpfunctions.com/code/6d34b1c6c2a09ac6269a51eee4857a47b545a38e
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники