Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   аналог функции unescape в PHP (http://www.flasher.ru/forum/showthread.php?t=174400)

Андрей911 24.01.2012 16:18

аналог функции unescape в PHP
 
Как можно в PHP декодировать строку закодированную во флеш.
Код AS3:

escape('Марина')="%u041C%u0430%u0440%u0438%u043D%u0430";
escape('http://www.visitingdc.com/images/eiffel-tower-picture.jpg')="http%3A//www.visitingdc.com/images/eiffel-tower-picture.jpg";

Пробовал в PHP urldecode
PHP код:

urldecode("%u041C%u0430%u0440%u0438%u043D%u0430")="%u041C%u0430%u0440%u0438%u043D%u0430";
urldecode("http%3A//www.visitingdc.com/images/eiffel-tower-picture.jpg")="http://www.visitingdc.com/images/eiffel-tower-picture.jpg"

То есть ссылки декодирует как положено, а русские буквы нет

Genzo 24.01.2012 17:07

http://www.sysman.ru/index.php?showtopic=16981 первая ссылка которую выдал гугл при запросе : unescape php

Андрей911 24.01.2012 21:55

Цитата:

Сообщение от Genzo (Сообщение 1058854)
http://www.sysman.ru/index.php?showtopic=16981 первая ссылка которую выдал гугл при запросе : unescape php

Спасибо. Да я ее видел и пробовал использовать. Это хорошо работает когда весь текст состоит из кириллицы, но получилось больно муторно когда он смешанный. Надо выделять русские символы отдельно от латиницы и декодировать.

Нашел более красивое, удобное и быстрое решение. Кому интересно вот оно. unescape и escape считаются устаревшими функциями и не рекомендуются к использованию. Вместо их нужно использовать encodeURIComponent, закодированные ей данные декодируются с помощью urldecode
Код AS3:

encodeURIComponent('Россия')="%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F";
escape("Россия")="%_u0420%_u043E%_u0441%_u0441%_u0438%_u044F";

PHP код:

urldecode("%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F")="Россия";
urldecode("%_u0420%_u043E%_u0441%_u0441%_u0438%_u044F")="%_u0420%_u043E%_u0441%_u0441%_u0438%_u044F"

Добавлено через 5 минут
Немного подпортил строку "%_u0420%_u043E%_u0441%_u0441%_u0438%_u044F". Если ставить без нжних прочерков, то она автоматически декодируется и в теме видна как "Россия"


Часовой пояс GMT +4, время: 04:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.