|
Описание класса URLПроизводит буферизованное и кеширующее чтение укзанного URL из глобальной сети. Суть заключается в том, что на самом деле чтение данных производит программа WGET, а данный класс всего лишь "обертка" вокруг WGET. Класс позволяет читать данные из сети и использовать неполностью считанные данные в любой момент времени без остановки как процесса чтения данных из сети так и данных из закешированного файла.Простенький пример использования: // открыть URL u=urlNew("http","www.itk.ru","/clipper","index.html") u:open() while !u:eof() // пока не закончился процесс чтения данных из сети ? u:status // здесь еще можно timeout вкрутить u:kick // обновить статус процесса "выкачки" sleep(1) // или вместо sleep можно начать обрабатывать частично закачанные // данные из сети do while !u:fileEof() ? u:getstr() enddo u:goTop() enddo // процесс "закачки" закончился - можно преваривать полученный файл // такой же цикл можно использовать и вместо sleep(1) // только надо быть осторожным чтоб не уйти в бесконечность. u:goTop() while !u:dataEof() ? u:getStr(1000) enddo Атрибуты/свойстваАтрибуты/свойства
Методы/функциифункция urlNewurlNew(protocol,host,path,file) - инициализирует новый URL.urlNew(url_OBJ) - инициализурует новый URL из структуры url_OBJ, например можно унаследовать свойства родительской страницы. метод url:parseUrl(url)Разбирает строку с URL в формате: [protocol:][//user:password@][host][/path/]file[?params][#anchor] раскладывает значения по атрибутам объекта. Старые значения атрибутов, не указанные в анализируемом URL не уничтожаются - т.е. используются как значения по умолчанию.метод url:makeUrl(url)Возвращает строку, собрнную из атрибутов объектаметод url:open()Начать процесс закачки.метод url:close()Закончить процесс закачки, даже если еще не все данные приняты.метод url:eof()Закончился ли процесс скачивания.метод url:kick()Обновить статусы процесса скачивания.метод url:kick()Обновить статусы процесса скачивания.метод url:goTop()Начать процесс чтения скаченных данных из закешированного файла.метод url:read()read(@buffer,nBytes) - прочитать в buffer скачанные данные в размере nBytes, возвращает реально прочитанное кол-во байт. Аналогично функции fread.метод url:readStr(nBytes)readStr(@buffer) - прочитать nBytes из скачанного файла и вернуть их в виде строки. Аналогично функции freadStr.метод url:getStr(nBytes)readStr(@buffer) - прочитать из скачанного файла строку, ограниченную символами конца строки. Аналогично функции fileGetStr.метод url:fileEof()Достигнут ли конец закешированного файла в процессе чтения, это не означает что процесс скачивания уже закончился. Это означает что все скачанные данные прочитаны методами read*метод url:dataEof()А вот это означает что процесс скачивания закончился и все данные из закешированного файла прочитаны функциями read* |