Перекодировка символов вида &#xxxx; в обычные

Статус
В этой теме нельзя размещать новые ответы.

DJ_Petrovich

Новичок
Перекодировка символов вида &#xxxx; в обычные

Функция utf8RawUrlDecode ($source) из ФАК'а не помогает.
Вторая вообще не работает.

Кто может подсказать рабочий вариант?
 

Wicked

Новичок
echo utf8RawUrlDecode ('xxx;xxx;xxx;xxx;xxx;');
Из говна конфетку не сделаешь. Символы "xxx", даже если бы их можно было раскодировать, оказались бы одинаковыми. Это я к тому, что еще один такой неудачный пример, и тема закрыта.
 

DJ_Petrovich

Новичок
Автор оригинала: Wicked
Из говна конфетку не сделаешь. Символы "xxx", даже если бы их можно было раскодировать, оказались бы одинаковыми. Это я к тому, что еще один такой неудачный пример, и тема закрыта.
ппц, ясный пень что вместо xxxx идут конкретные цифры
если привести их, то на форуме они тоже переведутся в конкретные символы автоматически...


разве что вот так:
PHP:
utf8RawUrlDecode('красный');
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
DJ_Petrovich
Уважаемый.
Выражайтесь проще.
И вообще согласно правилам форума Вы должны приводить конкретный пример, а неизвесно что.

Так что Ваше выражение
ппц, ясный пень что вместо xxxx идут конкретные цифры
особой смысловой нагрузки не несёт
 

DJ_Petrovich

Новичок
да я хз куда уж проще то...

в факе есть функция:

PHP:
function utf8RawUrlDecode ($source) {
    $decodedStr = '';
    $pos = 0;
    $len = strlen ($source);
    while ($pos < $len) {
        $charAt = substr ($source, $pos, 1);
        if ($charAt == '%') {
            $pos++;
            $charAt = substr ($source, $pos, 1);
            if ($charAt == 'u') {
                // we got a unicode character
                $pos++;
                $unicodeHexVal = substr ($source, $pos, 4);
                $unicode = hexdec ($unicodeHexVal);
                $entity = "&#". $unicode . ';';
                $decodedStr .= utf8_Encode ($entity);
                $decodedStr .= chr($unicode-848);
                $pos += 4;
            }
            else {
                // we have an escaped ascii character
                $hexVal = substr ($source, $pos, 2);
                $decodedStr .= chr (hexdec ($hexVal));
                $pos += 2;
            }
        }
        else {
            $decodedStr .= $charAt;
            $pos++;
        }
    }
    return $decodedStr;
}
которая при вызове ее вот так вот:

PHP:
$string = utf8RawUrlDecode('&#1082;&#1088;&#1072;&#1089;&#1085;&#1099;&#1081;');
в $string передает
PHP:
&#1082;&#1088;&#1072;&#1089;&#1085;&#1099;&#1081;
, а не слово "красный", как должна.

вторая функция, которая в факе есть не работает, т.к. на сервере не поддерживается iconv()...

прошу рабочий какой нить вариант функции....
 

DJ_Petrovich

Новичок
Может она конечно и рабочая, не спорю с этим, но у меня она работает аналогично такой функции:
PHP:
function utf8RawUrlDecode ($source) { 
    return $source; 
}
а мне нужен несколько другой результат...

PS не нужно заваливать топик ссылками на FAQ - я ознакомился с принципами отладки программ лет 15 назад
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Wicked
Тормознул жёстко, что ж сурс имеется ввиду... :(

>>PS не нужно заваливать топик ссылками на FAQ - я ознакомился с принципами отладки программ лет 15 назад

DJ_Petrovich
А с принцыпами прочтения мануала Вы тоже знакомы?
http://www.php.net/manual/ru/function.utf8-encode.php#75942

-~{}~ 23.07.07 00:00:

1-й коммент
 

kvf77

Red Devil
Тема закрыта. Учитесь пользоваться поиском.

В FAQ все есть и готовые решения и описание.


Прежде чем задавать вопрос - используйте поиск по форуму и FAQ:
На нахождение готового ответа на свой вопрос Вы потратите меньше своего и чужого времени, чем на создание новой темы.

Поиск по форуму

http://phpclub.ru/faq/
http://phpclub.ru/detail/
 

Wicked

Новичок
kvf77
поиск поиском... но в FAQе то реально накосячили :) Надо чтобы кто-нибудь проревьюил что там вообще написано, и что за код приведен.
 

kvf77

Red Devil
Wicked
Я ЛИЧНО составлял этот FAQ и все проверял. Если после меня никто шаловливыми ручками не пакостил, то все там работает - и нефиг писать в закрытой теме.
 

SiMM

Новичок
Функция utf8RawUrlDecode не служит для того, для чего её тут пытаются использовать - это видно даже из её названия и беглого просмотра :)
Почему она оказалась под заголовком "Как декодировать коды типа &amp;#1082;&amp;#1088;&amp;#1072;?" вопрос создателю раздела :)

-~{}~ 24.07.07 12:43:

При чём - она даже со своей задачей справляется только после доработки напильником.
PHP:
echo utf8RawUrlDecode('%D2%E5%u0441%u0442'); # Те&#1089;с&#1090;т
Очевидно, что результат предполагался несколько иным.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху