[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Создание сайтов и программирование » Создание сайтов » PHP: Массовая загрузка файлов на примере Spaces.ru
PHP: Массовая загрузка файлов на примере Spaces.ru
АДМИНДата: Четверг, 2012/Авг/16, 20:28 | Сообщение # 1
Группа: Администрация
Сообщений: 62
Награды: 6
Репутация: 9
Статус: Offline

Добрый день!


Недавно я писал о том, как можно получить все текстовые или графические посты ВКонтакте Что ж, предположим мы их спарсили. Следующий вопрос: куда это применить?


Можно, например, добавить это всё к себе на сайт или выгрузить куда-нибудь еще. Сейчас я разберу пример выгрузки спарсенных картинок на Spaces.ru


Итак, в результате выполнения предыдущего скрипта мы получили энное количество картинок с именами от 1.jpg до n.jpg, теперь нам необходимо выгрузить все эти картинки на Spaces. К сожалению, оганичения Spaces позволяют грузить только один файл в 10 секунд, поэтому придется использовать set_time_limit(0) и sleep(10)


ВНИМАНИЕ. По неизвестным мне причинам этот скрипт НЕ РАБОТАЕТ на локальной машине под Windows (по крайней мере на сборке DENWER.


Принцип действия скрипта таков:

1) Авторизуемся на Spaces

2) Подтверждаем вход из «необычного места» путем ввода 4 последних цифр номера

3) Загружаем файлы по одному


Какие данные нам понадобятся:

1) Ссылка автовхода (авторизуйтесь на Spaces и скопируйте ее из адресной строки)

2) 4 последних цифры номера

3) Ник

4) ID папки, в которую будем грузить файлы

5) Собственно, сами картинки в папке


Итак, поехали:


 
<?php
# URL автовхода
$avtovhod="http://spaces.ru/tm/34ddfd3de874145a62df0436123246264";
# ID папки
$papka=1;
# Ваш ник
$nick='user';
# 4 цифры номера
$nums='1234';
# Кол-во картинок
$all=1000;
# папка с картинками. Если в одной папке - оставьте пустым. Слэш в конце не забываем ставить!
$dir="img/";

set_time_limit(0); // убираем ограничение по времени
ignore_user_abort(true); // отключаем пользовательское прерывание
$ch2=curl_init($avtovhod);
curl_setopt($ch2,CURLOPT_HEADER,1); // выводим заголовки
curl_setopt($ch2,CURLOPT_RETURNTRANSFER,1);

$a2=curl_exec($ch2);
preg_match('#sid=([0-9]{1,})">#u',$a2,$arr); // определяем sid
$sid=trim($arr[1]);

# Отправляем 4 цифры номера
$ch3=curl_init("http://spaces.ru/mysite/?sid=".$sid);
curl_setopt($ch3,CURLOPT_HEADER,1);
curl_setopt($ch3,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch3,CURLOPT_COOKIE,array("sid"=>$sid));
curl_setopt($ch3, CURLOPT_POST,1);
$to=array();
$to['sid']=$sid;
$to['name']=$nick;
$to['pn_nums']=$nums;
curl_setopt($ch3,CURLOPT_POSTFIELDS,$to);
$a3=curl_exec($ch3);

# Собственно грузим файлы циклом
for($i=1;$i<=$all;$i++) {
$ch=curl_init("http://upload02.spaces.ru/files_upload/?sid=".$sid); // адрес аплоада
curl_setopt($ch,CURLOPT_HEADER,1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_COOKIE,array("sid"=>$sid));
$data=array();
$data['add']=1;
$data['dir']=$papka;
$data['sid']=$sid;
$data['file']=1;
$data['name']=$nick;
$data['plain']=0;
$data['p']=1;
$data['adult']=true; // если картинки не 18+ ставим false;
$data['myFile']="@".$dir."".$i.".jpg"; // собственно файл
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_REFERER, "http://spaces.ru/files/?sid=;name=".$nick."&dir=".$papka."&add=1&p=1&link_id=39312344707"); // подменяем реферер, там проверка
$a=curl_exec($ch);
sleep(10); // тормозим на 10 секунд, увы, защита
}

?>

Скачать исходники в ZIP


Удачного вам массового аплоада :)








Создатель сайта!!!!
 
Форум » Создание сайтов и программирование » Создание сайтов » PHP: Массовая загрузка файлов на примере Spaces.ru
  • Страница 1 из 1
  • 1
Поиск: