Forum Webscript.Ru

Программирование => PHP => Тема начата: alex-party от 19 Июля 2003, 11:14:58

Название: Перевод кодировки
Отправлено: alex-party от 19 Июля 2003, 11:14:58
Люди добрые! Помогите!

Bот етой функцией я перевожу строку в HTML.
------------------------
function xmlentities($string, $quote_style=ENT_COMPAT)
{
   $trans = get_html_translation_table(HTML_ENTITIES, $quote_style);

  foreach ($trans as $key => $value)
       $trans[$key] = \'&#\'.ord($key).\';\';

   return strtr($string, $trans);
}
------------------------
Например: xmlentities("привет"); => выдаст: #1087;#1088;#1080;#1074;#1077;#1090;
А КАК ТЕПЕРЬ ПЕРЕВЕСТИ ОБРАТНО?
ВСЕ ПЕРЕПРОБЫВАЛ - НУ НИ КАК НЕПОЛУЧАЕТСЯ.....
Название: Перевод кодировки
Отправлено: FreeSpace от 19 Июля 2003, 12:21:47
Хинт: функция [p]chr[/p] - обратная функции ord.
[p]array_flip[/p] тебе тоже пригодится.
Название: Перевод кодировки
Отправлено: alex-party от 19 Июля 2003, 16:06:25
:) Спасибо за подсказку. Вот я переделал  - все получилось. Протестировал - рботает на все 100:super:  Вот как выгледят ети ф-ии:

function encode($str, $quote_style=ENT_COMPAT){
$trans = get_html_translation_table(HTML_ENTITIES);
$encoded = strtr($str, $trans);
return $encoded;
}

function decode($str, $quote_style=ENT_COMPAT){
$trans = get_html_translation_table(HTML_ENTITIES);
$trans = array_flip($trans);
   $encoded = strtr($str, $trans);
   $original = strtr($encoded, $trans);
return $original;
}

Пример:
encode("привет"); => выдаст: #1087;#1088;#1080;#1074;#1077;#1090;

decode("#1087;#1088;#1080;#1074;#1077;#1090;
"); => выдаст: "привет"