Google

Описание класса 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

Атрибуты/свойства

Атрибуты/свойства

Название атрибута Значение атрибута
protocol "http" | "ftp" | "file"
port NIL | numeric
user NIL | string
password NIL | string
host адрес сайта в виде строки "www.itk.ru" или строки с IP-номером
path каталог на сайте
file имя файла на сайте
anchor якорь
params NIL | string
start число секунд системного времени (результат работы функции seconds) в момент начала считывания URL
stop число секунд системного времени (результат работы функции seconds) в момент окончания считывания URL
status строковое сообщение о текущем состоянии процесса скачивания
messages строка со всеми сообщениями, выдававшиеся программой WGET
length предполагаемая длина выкачиваемого файла
ready сколько байт реально скачано

Методы/функции

функция urlNew

urlNew(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*
© Ю.Хныкин, uri@itk.ru, 2000