BB тег для цитирования статьи |
| |
[URL=http://www.sysman.ru/index.php?showtopic=16981]Аналоги JS-функций escape(), unescape() На PHP Пара функций, которые облегчат Вам жизнь[/URL]
|
Теги статьи: , , , , , Для чего это нужноРазработчики приложений иногда сталкиваются с такой проблемой: необходимо передать что-то отличное от набора английских символов. Для возврата/передачи данных часто используется Javasc_ript-функция escape/unescape...
Но вот беда: в PHP Нет аналогов для кодирования/раскодирования таких данных, rawurlencode/decode работают в данном случае некорректно.
Функция раскодирования (Аналог unescape)
function js_urldecode($str)
{
$str = explode('%u', $str);
$out = '';
for ($i = 0; $i < count($str); $i++)
{
$out .= pack('H*', $str[$i]);
}
$out = mb_convert_encoding($out, 'UTF-8', 'UTF-16');
return $out;
}
Функция кодирования (Аналог escape)
function js_urlencode($str)
{
$str = mb_convert_encoding($str, 'UTF-16', 'UTF-8');
$out = '';
for ($i = 0; $i < mb_strlen($str, 'UTF-16'); $i++)
{
$out .= '%u'.bin2hex(mb_substr($str, $i, 1, 'UTF-16'));
}
return $out;
}
Примечания- Вместо кодировки 'UTF-8' можно подставить ту, которую Вы используете, например 'Windows-1251'
- Функции используют функции библиотеки mb_string! Будте внимательны.
© Kerd
Сообщение отредактировано: Song - 4.01.09, 14:51