v8: Парсер гиперссылокПриведен пример использования функций для работы со строковыми данными с помощью которых осуществляется разбор (парсинг) гиперссылки | | Автор статьи: Neco | Редакторы: Последняя редакция №2 от 04.07.06 | История URL: http://kb.mista.ru/article.php?id=271 | |
Ключевые слова: Гиперссылка, парсить, HTTPСоединение, FTPСоединение
При написании конфигураций 1С, которые активно работают с Интернет часто возникает потребность разобрать гиперссылку. Предлагаемая функция парсит строку содержащую гиперссылку и возвращает в структуру имя сервера, протокол, имя файла и путь к файлу. Полезна для использования с объектами HTTPСоединение и FTPСоединение.
// Функция разбирает гиперссылку и возвращает структуру ссылки:
// Сервер, Протокол, Имя файла и путь к файлу
Функция ПарситьГиперссылку(Гиперссылка) Экспорт
Возврат Новый Структура("Протокол,Сервер,ИмяФайла,ПутьКФайлу",
// --- Протокол
?(Найти(Гиперссылка,"://")=0,"http",СтрПолучитьСтроку(СтрЗаменить(Гиперссылка,"://",Символы.ПС),1)),
// --- Сервер
?(Найти(Гиперссылка,"://")=0,
// если гиперссылка не полная (www.zzz.com/index.htm)
СтрПолучитьСтроку(СтрЗаменить(Гиперссылка,"/",Символы.ПС),1),
// если гипрессылка полная (http://www.zzz.com/index.htm)
Сред(СтрПолучитьСтроку(СтрЗаменить(Гиперссылка,"://",Символы.ПС),2), 1, Найти(СтрПолучитьСтроку(СтрЗаменить(Гиперссылка,"://",Символы.ПС),2),"/") - 1)),
// --- Имя файла
СтрПолучитьСтроку(СтрЗаменить(Гиперссылка,"/",Символы.ПС),СтрЧислоСтрок(СтрЗаменить(Гиперссылка,"/",Символы.ПС))),
// --- Путь к файлу
?(Найти(Гиперссылка,"://")=0,
// если гиперссылка не полная (www.zzz.com/index.htm)
СтрЗаменить(Гиперссылка,СтрПолучитьСтроку(СтрЗаменить(Гиперссылка,"/",Символы.ПС),1),""),
// если гипрессылка полная (http://www.zzz.com/index.htm)
Сред(СтрПолучитьСтроку(СтрЗаменить(Гиперссылка,"://",Символы.ПС),2), Найти(СтрПолучитьСтроку(СтрЗаменить(Гиперссылка,"://",Символы.ПС),2),"/"),СтрДлина(СтрПолучитьСтроку(СтрЗаменить(Гиперссылка,"://",Символы.ПС),2))));
КонецФункции
Также вышеприведенный код является примером того, что можно делать со строковыми функциями в 1С: Предприятие 8.0. |