|
|
|
|
|
для: Trianon
(10.02.2011 в 13:14)
| | Да я, собственно, ничего и не требовал от Вас =)
Ответил только на "откуда списано". Использую этот "списанный" код (после обдумывания) для граббера html-страниц. Работает всё отменно!
Вопрос возник, когда не знал, как скачивать файлы из инета на сервер. Думал, что должно быть нечто подобное вышеприведенному фрагменту кода.
Поэтому: повторное, искреннее спасибо!
Респект авторам (и книги и форума). | |
|
|
|
|
|
|
|
для: Evgen
(10.02.2011 в 10:39)
| | >>PS. "Неправильно применеы поля заголовка. Списаны откуда-то совершенно бездумно..."
> "РНР5 на примерах", М. Кузнецов, И. Симдянов, С. Голышев, 2006, стр.335
Ну и что с того? Разве это повод списывать код без того, чтобы вникать в него?
Из аннотации книги "PHP5 на примерах".
...используемые в книге примеры взяты из реальтной практики Web-программирования и в большинстве своем являются ответами на многочисленные вопросы посетителей форума PHP на сайте www.softtime.ru? созданного и поддерживаемого авторами, а также на вопросы читателей их предыдущих книг.
Так что все вполне закономерно - идея требовать с авторов книги ответ за работоспособность кода в откликах на форуме, которые давались его посетителями - на мой взгляд, крайне сомнительная идея. | |
|
|
|
|
|
|
|
для: Trianon
(09.02.2011 в 10:43)
| | To cheops & Trianon
Всё заработало! Большое спасибо за помощь!
Подействовала критика - "не трогайте fsockopen() не разобравшись в протоколе...", - принял как руководство к действию =)
Поэтому пришлось разобраться с функцией copy( ), всё отлично работает на сервере!
PS. "Неправильно применеы поля заголовка. Списаны откуда-то совершенно бездумно..." - "РНР5 на примерах", М. Кузнецов, И. Симдянов, С. Голышев, 2006, стр.335 | |
|
|
|
|
|
|
|
для: Evgen
(09.02.2011 в 04:13)
| | функция fread применена правильно.
Неправильно применеы поля заголовка. Списаны откуда-то совершенно бездумно.
Неоднократно говорил всем, не трогайте fsockopen() не разобравшись в протоколе.
Протокол http сложный, а не простой, как многие пытаются показать.
Тем более, что в php клиентская его часть реализована в обертках(wrappers) файловых функций и в инструменте curl,
а значит можно воспользоваться уже написанным.
Что значит "а как к нему привязать header, если скрипт лежит на сервере"?
Что за header? Почему его требуется к чему-то вязать? | |
|
|
|
|
|
|
|
для: cheops
(08.02.2011 в 15:55)
| |
<?
function get_content ($host_name, $path)
{
global $text;
$text = "";
$fp = fsockopen ($host_name, 80, $errno, $errstr, 30);
if (!$fp)
{
exit("$errno ($errstr)");
}
else
{
$headers = "GET $path HTTP/1.1\r\n";
$headers .= "Host: $host_name\r\n";
$headers .= "Accept: *\r\n";
$headers .= "Accept-Charset: *\r\n";
$headers .= "Accept-Encoding: deflate\r\n";
$headers .= "Accept-Language: ru\r\n";
$headers .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
$headers .= "Connection: Close\r\n\r\n";
fwrite ($fp, $headers);
while (!feof($fp))
{
//$text .= fgets ($fp, 1024);
$text .= fread ($fp, 1024);
}
fclose ($fp);
}
return;
}
?>
|
Файл (*.jpg) скачивается, сохраняется, размер сохраненного файла соответствует источнику, но файл не открывается ("Unknown Format").
Подозреваю, что функции fgets (fread) либо неуместны, либо неправильно применены...
PS. Вариант COPY ( ) работает, если запускаю его на своей машине (т.е. заголовок в сеть шлет мой браузер), а как к нему привязать header, если скрипт лежит на сервере - не понятно ... уже голову сломал.... | |
|
|
|
|
|
|
|
для: cheops
(08.02.2011 в 15:55)
| | ОК! Спасибо, бум пробовать! | |
|
|
|
|
|
|
|
для: Evgen
(08.02.2011 в 15:37)
| | Примерно так
<?php
copy("http://site.dev/image.gif", "image.gif");
?>
|
Первый параметр - сетевой адрес файла, а второй - локальный путь, куда этот файл должен быть сохранён. | |
|
|
|
|
|
|
|
для: Trianon
(08.02.2011 в 15:29)
| | copy( ) для файла на удаленной машине? Как это?
evgen (08.02.2011 в 15:04) ...ввожу адрес файла для скачки, файл скачивается на мой сервер... | |
|
|
|
|
|
|
|
для: Evgen
(08.02.2011 в 15:11)
| | В самом примитивном варианте это проделывается вызовом функции copy().
И от формата файла не зависит. | |
|
|
|
|
|
|
|
для: cheops
(08.02.2011 в 15:07)
| | Сохраняем не на локальной машине, а на сервере. Запускаю скрипт с сервера, показываю где взять файл, а он его берет и у себя (на сервере) сохраняет.
PS. Удивлен и признателен за мгновенный ответ =)
PPS. Форматы файлов - zip, rar, exe и тп | |
|
|
|
|