Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Pitonych 19.09.2006 03:49 / 19.09.2006 04:01
Задача на первый взгляд простая - скачать страничку по адресу и записать её сорс в базу# скачиваем страницу по ссылке $page[^file::load[text;$href;$.timeout(30)]] # берем её содержимое $text[$page.text] # записываем в базу ^void:sql{insert into pages (body) values ('$text')}Это все работает. Но задача стоит записать сорс в базу в encoded виде, то есть gt; вместо > и так далее. Ну, есть такая потребность.
# скачиваем страницу по ссылке
$page[^file::load[text;$href;$.timeout(30)]]
# берем её содержимое
$text[$page.text]
# делаем преобразование
$text[^taint[html][$text]]
# записываем в базу
^void:sql{insert into pages (body) values ('$text')}
Тут мы падаем - енкоденный html вызывает ошибку в sql при выполнении - тот находит в нем какие-то нехорошие символы, как я понял, внутри закоментенных js-скриптов, там не дублируются апострофы после taint.$text[^taint[html][$text]] $text[^taint[sql][$text]]После такого html в базе не енкоденный.