![]() |
|
![]() |
||||||
![]() |
Задача сводилась к тому, чтобы по мере обработки читать с файла новые url, асинхронно запрашивать страницы и записывать HTTP ответы в файлы. Конечно можно было все сделать последовательно, но уж больно много времени потребовалось бы на это.
Как оказалось, для организации такого конвейера более подходит модуль HTTP::Async, а не LWP::Parallel::UserAgent. Вот примерный код, который использовался для этого (работа с файлами опущена): Читать дальше... ![]() build, equivalent, function, http, javascript, php, queryАлексей Свешников опубликовал в своём блоге пример . Очень меня этой безделушкой порадовал. В общем, вот мой вариант (эта версия у меня работает и с браузером, и с wget): Читать дальше... Возвращает размер удаленного файла по протоколу http. Можно указать логин и пароль для http-авторизации, если требуется.
Используется библиотека cURL. Читать дальше... Часто при работе с библиотекой cURL, если вы используете опцию CURLOPT_FOLLOWLOCATION (при получении заголовка Location будет происходить автоматическое перенаправление на указанный URL) может возникать следующая ошибка "CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in". Она означает что необходимо выключить safe_mode или деактивировать директиву open_basedir. Часто хостинг-компании не позволяют сделать ни того ни другого. Для решения этой проблемы воспользуйтесь следующей функцией вместо curl_exec. Функция curl_redir_exec проверяет в возращаемых заголовках заголовок Location, если он присуствует, то пытается перейти по url указанному в заголовке, если он отсуствует - отдает полученное содержимое. Читать дальше... Если вам не нужно ничего большего, чем просто выполнить асинхронный запрос и на основе полученных данных сделать нечто - для вас эта функция. Способ получения объекта XMLHttpRequest безусловно может быть заменен. Комментарии намеренно оставлены, дабы показать некоторые идеи по расширению: Читать дальше... Функция использует библиотеку Curl и возвращает заголовки http запроса к заданному URL. Читать дальше... ![]() Функция download скачивает файл по заданному url $url, в директорию $to (путь надо указывать относительно корня сервера).
Не забудьте выставить соответствующие аттрибуты на директорию. Читать дальше... |
Меню
Подписка на RSS:
Поиск
Облако тегов
.net
array
asp
bash
browser
charset
check
class
clean
convert
count
create
css
curl
database
date
delete
directory
download
element
email
equivalent
extension
file
find
form
format
function
get
height
html
http
ie
image
javascript
jquery
load
mysql
number
page
perl
php
random
scriplet
send
shell
size
sql
string
text
time
url
utf8
variable
vb
visual basic
width
window
xml
xslt
|
![]() |
![]() |
![]() |
||
![]() |
![]() |