
11.04.2007, 02:11
|
|
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
С нами:
10217736
Репутация:
114
|
|
Классический пример получения док-а по httP
Скрипт, который по httP протоколу получает документ с сервера::
PHP код:
<?
$fp = fsockopen("www.host.ru", 80, &$errno, &errstr, 30);
//посылаем GET-форму в виде "URL+хост"
fputs($fp, "GET /files/doc.zip HTTP/1.0\nHOST: www.host.ru \n\n");
//ситаем все до начала следующего док-а
while(fgets($fp, 2048) !="\n\n" && !feof($fp));
//копируем то, что прочитали в переменную $buff
uset($buff);
while(!feof($fp)) $buff.=fread($fp, 2048);
//закрывается сокет
fclose($fp);
echo 'Файл загружен, размер файла: ' .strlen($buff). 'bytes.';
flush();
//далее записываем загруженный файл в другой,
//к примеру, dload.out. Если мы скачали zip файл, то,
// переименовав dload.out в dload.zip, можно дальше
//работать с этим файлом как с обычным zip архивом.
$f=fopen('dload.out', 'wb+');
fwrite($f, $buff, strlen($buff));
fclose($f);
?>
ЗЫ::Ответ сервера состоит из заголовка и тела документа. Интересует же только тело документа.
Поэтому, все что идет до документа мы пропускаем, зная, что заголовок от тела документа отделяется строкой "\r\n". Заголовок читается функцией 'fgets', а бинарные данные 'fread'
ЗЫЫ:: кстати не так давно, не помню кто, спрашивали о генераторе паролей..простейший вариант:
PHP код:
<?
$pass = md5(uniqid(rand), true);
//возвращается 128-битный хеш
...
?>
Последний раз редактировалось mR_LiNK[deface_0nl; 11.04.2007 в 02:24..
|
|
|