Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Загрузка с символом & (http://www.flasher.ru/forum/showthread.php?t=79121)

kvv 03.05.2006 00:34

Цитата:

Ну не знаю. Сделал я тестовую флешку и передевал туда данные, правда через flashvars, но когда я добавил ";" то стало работать.
Все это делает скрипт. Php-функция htmlspecialchars преобразует < в &lt;
А то, что данные отрезаются по & - это точно. У меня сначала через ондату выводится неотпарсенная строка - там все есть, а когда через онлоад - тогда обрезается.

Парсер onData написать врят-ли получится - во флешку через один объект грузятся данные для разных модулей - новостей, авторизации, и тд.
С юникодом попробую.

etc 03.05.2006 00:56

& = %26

iNils 03.05.2006 01:02

Да действительно flashvars работает по другому. Но можно так сделать
Код:

str = "p1=text&p2=sometext &lt; b &gt; bold &lt; /b &gt; next";
lv = new LoadVars ();
xml1 = new XML();
xml1.parseXML(str)
lv.decode (xml1.firstChild.nodeValue);
trace (lv.p1);
trace (lv.p2);

но точки с запятой все рано ставить надо :)

тогда общая схема такая
Код:

lv = new LoadVars ();
lv.load ("info.txt");
lv.onData = function (src) {
        var xml1 = new XML ();
        xml1.parseXML (src);
        this.decode (xml1.firstChild.nodeValue);
        this.onLoad ();
};
lv.onLoad = function () {
        trace (this.p2);
};

info.txt содержит:
p1=text&p2=sometext &lt; b &gt; bold &lt; /b &gt; next

kvv 03.05.2006 07:44

Сделал в php-скрипте перед выводом новости $text=str_replace('&','%26',$text) - и все работает, спасибо!

У iNils идея интересная, но у меня не заработала:
Код:

rec_lv.onData=function(src)
{
        _root.debugger_mc.addText('LOADED:');
        _root.debugger_mc.addText(src);
        //this.decode(src);
        var xml1 = new XML ();
        xml1.parseXML (src);
        this.decode (xml1.firstChild.nodeValue);
        this.onLoad(true);
        for(var i in this)
        {
                _root.debugger_mc.addText(i+' '+this[i]);
        }
}

Загружаем строку вида:
Цитата:

&act=news&sid=114654297587685&uid=1&priv=4&txt=<heading>Бу [!]</heading><date><a href="asfunction:_root.showInfo,vad">vad</a> / 2.05.06 11:27 / <a href="asfunction:_root.showIp,127.0.0.1">127.0.0.1</a></date>Бу!
&lt;b&gt;ggg&lt;/b&gt;
<br><date><a href="asfunction:_root.showComments,13">comments [0]</a></date>
В debugger выводит:
priv 4
uid 1
sid 114654297587685
act news
onLoad [type Function]
onData [type Function]

Наверное не работает, тк текст новости содержит теги, которые мне не надо заменять, и хмл на них сбивается.

son_of_war 03.05.2006 08:03

ну ИМХО флэш любит и понимает данные, которые приходят, пропущенные через urlencode, в этом случае никаких проблем со спецсимволами не возникает

а вообще можно сохраняя данные записывать скажем в базу через функции кодирования, например base64_encode а обратно передавать через base64_decode

iNils 03.05.2006 12:18

2 kvv: не понятно почему ты часть "<" и ">" заменяешь, а часть нет.
Если у тебя такой вид информации, то xml это лучшее что может быть. Весь код с тегами помещаешь в CDATA и не занимаешься головной болью с переводами.

kvv 03.05.2006 12:27

Теги юзеров я заменяю - незачем им, допустим делать ссылки на asfunction. Но у них есть возможность bbcodes + сама новость оформляется тегами (<heading></heading> - а в css прописано описание тега).

А с xml, может и нужно было, но уже поздно - большую часть кода уже написал.

iNils 03.05.2006 12:42

Вложений: 1
1. Ты объясни почему например <he ading> не меняешь на &lt;he ading&gt;
2. Вчера массово все тупили, кроме ETC :) Он ведь по сути предложил использовать escape последовательность. Тебе надо просто все аргументы кодировать в нее и передавать. Смотри аттач.
3. Правильную вещь никогда не поздно сделать.

etc 03.05.2006 13:20

Достаточно перевести только разделитель переменных (амперсанд) в escape-последовательность, чтобы флеш не думал, что это разделитель и правильно его декодировал...

А вообще, для таких целей лучше юзать xml с cdata и не заменять теги на подстановки...

iNils, escape-последовательность -- это из другой оперы (из оперы ускорения набора некоторых однотипных конструкций кода) =)
А escape это, по сути, urlencode.

iNils 03.05.2006 13:33

Цитата:

Сообщение от ETC
escape-последовательность -- это из другой оперы (из оперы ускорения набора некоторых однотипных конструкций кода) =)
А escape это, по сути, urlencode.

так у Мука написано :)


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

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