Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не работает закачка файлов CURL 
V
    Опции темы
kshyms
Дата 26.11.2009, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



Код

$message=$f[url];
$url1 = $f[url];
 $url1 = trim($url1 , " http://"); // Лишь несколько слов

$ch = curl_init("$message");
$handle = fopen("$url1.html", "wb");
curl_setopt($ch, CURLOPT_FILE, $handle);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = CURLOPT_RETURNTRANSFER($ch);

Не работает закачка файлов CURL, а почему?

Это сообщение отредактировал(а) kshyms - 26.11.2009, 08:06
PM MAIL WWW Skype   Вверх
Pitlord
Дата 26.11.2009, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 31.10.2009

Репутация: 4
Всего: 7



Код хоть и маленький, но очень страшный. Попробуй сначала изучить то, что ты в него напихал. Что делает trim(), что во втором аргументе fopen() передают, какой формат формирования запроса cURL'ом в PHP.
PM MAIL   Вверх
kshyms
Дата 27.11.2009, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



Цитата

Что делает trim()
 Вырезает лишнее

Добавлено через 7 минут и 31 секунду
curl_exec($ch)-загрузка страницы и выдача её браузеру
fopen() - открывает файл
CURLOPT_RETURNTRANSFER-запись
curl_exec($ch)-загрузка страницы и выдача её браузеру


PM MAIL WWW Skype   Вверх
NewDima
Дата 27.11.2009, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



kshyms, давно такого быдло-кода не видел, даже у своих одногруппников.
Читайте внимательно документацию по функциям, которые используете
ttrim()
curl_setopt
Обратите внимание на отсутствие функции CURLOPT_RETURNTRANSFER() потому что это не функция
PM ICQ   Вверх
Pitlord
Дата 27.11.2009, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 31.10.2009

Репутация: 4
Всего: 7



kshyms, мне это неинтересно. Ты для себя уясни что ты используешь, ты не экзамен сдаёшь.

Это сообщение отредактировал(а) Pitlord - 27.11.2009, 18:43
PM MAIL   Вверх
kshyms
Дата 28.11.2009, 06:14 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



Код


$f[url]="http://forum.vingrad.ru";
$message=$f[url];
$url1 = $f[url];
$ch = curl_init("$message"); //
$handle = fopen("$url1.html", "w+");//открываем папку 
curl_setopt($ch, CURLOPT_FILE, $handle);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = CURLOPT_RETURNTRANSFER($ch);
curl_close($ch);

и так тоже пробовал пока не получается



Это сообщение отредактировал(а) kshyms - 28.11.2009, 07:14
PM MAIL WWW Skype   Вверх
NewDima
Дата 28.11.2009, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



Если я говорю обратить внимание, это не значит, что нужно удалить бездумно. Для того, чтобы curl вернул результат, нужно установить флаг CURLOPT_RETURNTRANSFER функцией curl_setopt. Повторюсь еще раз, если функция trim делает то, что вам нужно, это не значит, что вы правильно ей пользуетесь, прочитайте доку, или же совсем лень?
PM ICQ   Вверх
kshyms
Дата 29.11.2009, 06:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



Код

$f[url]="http://forum.vingrad.ru";
$message=$f[url];
$url1 = $f[url];
$str = substr("$url1", 7); //а может вместо trim применить
$str .= "html";
$ch = curl_init("$message"); //
$handle = fopen("$str ", "r+");//открываем папку
curl_setopt($ch, CURLOPT_FILE, $handle);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = CURLOPT_RETURNTRANSFER($ch);
curl_close($ch);

А может так?
PM MAIL WWW Skype   Вверх
kshyms
Дата 29.11.2009, 06:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



Код

$f[url]="http://forum.vingrad.ru";
$message=$f[url];
$url1 = $f[url];
$str = $url1;
$str = substr("$str", 7); //а может вместо trim применить
$str .= "html";
$ch = curl_init("$url1"); //
$handle = fopen("$str ", "r+");//открываем папку
curl_setopt($ch, CURLOPT_FILE, $handle);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = CURLOPT_RETURNTRANSFER($ch);
curl_close($ch);


Это сообщение отредактировал(а) kshyms - 29.11.2009, 07:21
PM MAIL WWW Skype   Вверх
NewDima
Дата 29.11.2009, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



Цитата(NewDima @ 28.11.2009,  13:20)
Для того, чтобы curl вернул результат, нужно установить флаг CURLOPT_RETURNTRANSFER функцией curl_setopt.

Неужели это не ясно?
Код

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);


Добавлено через 59 секунд
kshyms, и прочитайте, что выводит интерпритатор в ответ на такой код. Найдеюсь, поймете
PM ICQ   Вверх
kshyms
Дата 29.11.2009, 11:08 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



Вы имеете ввиду curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);


как здесь что ли

Код

$ch = curl_init();
$timeout = 5; // set to zero for no timeout
curl_setopt ($ch, CURLOPT_URL, 'http://example.com');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);

// display file
echo $file_contents;


А может взять за основу это?

Это сообщение отредактировал(а) kshyms - 29.11.2009, 11:22
PM MAIL WWW Skype   Вверх
Pitlord
Дата 29.11.2009, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 31.10.2009

Репутация: 4
Всего: 7



kshyms, ты принципиально не хочешь разбираться в том, что копируешь?
PM MAIL   Вверх
NewDima
Дата 29.11.2009, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



kshyms, да! Я об этом три раза сказал, вообще-то
PM ICQ   Вверх
kshyms
Дата 5.12.2009, 09:20 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0




Эксперимент еще не закончен.
Код

<?PHP
$f[url]="http://forum.vingrad.ru";
$message=$f[url];
$url1 = $f[url];
$str = $url1;
$str = substr("$str", 7); //а может вместо trim применить
$str .= ".html";
$ch = curl_init("$url1"); //
$handle = fopen("$str ", "r+");//открываем папку
curl_setopt  ($ch, CURLOPT_HEADER, true);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch); // выполняем запрос curl
curl_close($ch);
?>

Флаг - это объявленная константа. Если побитовая передача потока тогда нужно установить константу куда качать, а 1 означает по 1 биту, то есть знаку.
А может так?

Это сообщение отредактировал(а) kshyms - 5.12.2009, 09:21
PM MAIL WWW Skype   Вверх
kshyms
Дата 5.12.2009, 12:45 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



Код

$f[url]='http://forum.vingrad.ru';
$url1 = $f[url];
$str = $url1;
$str = substr("$str", 7); //а может вместо trim применить
$str .= ".html";
$ch = curl_init("$url1"); //
//$handle = fopen("$str ", "r+");//открываем папку
curl_setopt  ($ch, CURLOPT_HEADER, true);
curl_exec($ch); // выполняем запрос curl
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_close($ch);

Так вроде бы в закачивает но выдает только в браузер а мне нужно в папку пихнуть в таком виде  forum.vingrad.ru.html

Все работает и закачивает!

Это сообщение отредактировал(а) kshyms - 30.12.2009, 07:48
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0570 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.