![]() |
Загрузка с символом &
Есть скрипт новостей. Когда юзер добавляет новость, ее текст записывается в базе, предварительно обработанный функцией htmlspecialchars (заменяет символы < и > на < и >).
А когда новость загружается во флешку, то во флешку идет примерно такой пост: sid=1&uid=1&text=sometext < b >... И, следовательно в новость записывается лишь часть текста до первой всетречи &. Как этого избежать? |
а как грузим во флеш ?
|
Постом через лоадварс. xml не подходит, тк весь движок придется переписывать.
|
а почему бы теги не вернуть назад?
|
Цитата:
|
>> почему бы теги не вернуть назад?
дада: LoadVars.onData дает непропарсенную строку данных от вызовов load/sendAndLoad: с ней и разбирайся.. |
А разве надо < и > писать, а не < и > ?
|
iNils да, так - но это сути не меняет
Спасибо за совет с onData, попрбую. Но так идет стандартый метод decode. А как его переписать под себя - вообще не понимаю. По ходу возник еще вопрос - а как вообще в текстфилде с хтмлем можно отобразить символы < и >, ведь по-любому строку <smth> флешка никогда не покажет - она же обработает это или как дефолтовый тэг, или стиль... Уже столько лет пишут порталы под флеш - должны ж были как-то это придумать? А с передачей амперсанда пока мне кажется самый реальный выход - или при передаче из скрипта его просто вырезать нафиг - кому он нужет в новостях... |
Цитата:
|
Я сталкивался с такой проблемой, но в упор не помню как решил, толи я передал номер символа в юникоде, толи написал парсер..было два года назад.
|
Цитата:
А то, что данные отрезаются по & - это точно. У меня сначала через ондату выводится неотпарсенная строка - там все есть, а когда через онлоад - тогда обрезается. Парсер onData написать врят-ли получится - во флешку через один объект грузятся данные для разных модулей - новостей, авторизации, и тд. С юникодом попробую. |
& = %26
|
Да действительно flashvars работает по другому. Но можно так сделать
Код:
str = "p1=text&p2=sometext < b > bold < /b > next";тогда общая схема такая Код:
lv = new LoadVars ();p1=text&p2=sometext < b > bold < /b > next |
Сделал в php-скрипте перед выводом новости $text=str_replace('&','%26',$text) - и все работает, спасибо!
У iNils идея интересная, но у меня не заработала: Код:
rec_lv.onData=function(src)Цитата:
priv 4 uid 1 sid 114654297587685 act news onLoad [type Function] onData [type Function] Наверное не работает, тк текст новости содержит теги, которые мне не надо заменять, и хмл на них сбивается. |
ну ИМХО флэш любит и понимает данные, которые приходят, пропущенные через urlencode, в этом случае никаких проблем со спецсимволами не возникает
а вообще можно сохраняя данные записывать скажем в базу через функции кодирования, например base64_encode а обратно передавать через base64_decode |
2 kvv: не понятно почему ты часть "<" и ">" заменяешь, а часть нет.
Если у тебя такой вид информации, то xml это лучшее что может быть. Весь код с тегами помещаешь в CDATA и не занимаешься головной болью с переводами. |
Теги юзеров я заменяю - незачем им, допустим делать ссылки на asfunction. Но у них есть возможность bbcodes + сама новость оформляется тегами (<heading></heading> - а в css прописано описание тега).
А с xml, может и нужно было, но уже поздно - большую часть кода уже написал. |
Вложений: 1
1. Ты объясни почему например <he ading> не меняешь на <he ading>
2. Вчера массово все тупили, кроме ETC :) Он ведь по сути предложил использовать escape последовательность. Тебе надо просто все аргументы кодировать в нее и передавать. Смотри аттач. 3. Правильную вещь никогда не поздно сделать. |
Достаточно перевести только разделитель переменных (амперсанд) в escape-последовательность, чтобы флеш не думал, что это разделитель и правильно его декодировал...
А вообще, для таких целей лучше юзать xml с cdata и не заменять теги на подстановки... iNils, escape-последовательность -- это из другой оперы (из оперы ускорения набора некоторых однотипных конструкций кода) =) А escape это, по сути, urlencode. |
Цитата:
|
Мука не читал. И Гурского тоже...
Но вообще, иногда нужно уточнять, что подразумевают под "escape-последовательностью" |
из ActionScript для Flash MX
Цитата:
|
Одновременно с этим, escape-последовательность -- последовательность нажатий клавиш для вставки конструкций кода. Начинается с Esc =)
Впрочем, отошли от темы... |
2iNils
1. Потому что тег heading должен рабоать имеено как тег - им сам скрипт оформляет новость. А теги, которые вводят юзеры должны быть показаны просто как текст. 2. После его совета я так и сделал... 3. Время не резиновое... Зато уж если буду что-то новое делать - то тогда уже через xml. А тема-то уже закончена. Всем спасибо, все работает. |
| Часовой пояс GMT +4, время: 10:41. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.