[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Curl Class
forza
Доброго время суток программисты.
Написал класс-обертку для работы с курл. Вот сейчас думаю, развивать его дальше или нет. Возможностей пока в нем немного.
В общем, кому интересно - посмотрите, оцените. Судите строго, но справедливо.

Как пользоваться сей поделкой.

include 'class.curl.php';

/*
* Принимает результат работы курл
* data['content'] - Резултать работы курл в строке
* data['headers'] - curl_getinfo()
* data['params'] - дополнительно переданные параметры
*/

function response($data)
{
echo '<pre>';
var_dump($data);
}

$curl = new Curl();

function
$opts = array(
//Реферер
'referer'=>'Diadia vasia',

//Прокси сервер. Если надо авторизоваться на прокси сервере, то порядок такой: ип:порт аккаунт:пароль
'proxy'=>'92.127.155.106:80',

'method'=>'POST', //Метод HTTP запроса
'postdata'=>array( // Данный которые передаем в скрипт
'name'=>'account',
'pw'=>'password',
'ok'=>true,
),

'cookiesession'=>'coockie.txt', //Если нужна поддержка сессии. Значение - файл, куда будет сохраняться куки
'useragent'=>'browser', //А ну и браузер конечно
);

//Теперь добавляем урл в нашу курл сессию и передаем ему выше установленные параметры
//Класс поддерживает мультипоточность, поэтому одной курл-сессии можно не ограничивать себя

$curl->addSession('http://phpforum.ru', $opts);

//Запускаем
$curl->run();

//Чтобы получить ответ, нужно установить callback
$curl->setCallback(array(
"function"=>"response", //См. функцию response() выше
"params"=>"hello",
));

/**
В метод setCallback передается массив.
"function" - функция, метод который/ая будет обрабатывать ответ. П.С. сработает пхп-функция call_user_func
"params"- дополнительные параметры

Еще варианты использования callbacks
Для разных сессий можно установить разные callbacks
$first = $curl->addSession('
http://phpforum.ru', $opts1);
$this->setCallback(array(....), $first); //

$second = $curl->addSession('
http://google.ru', $opts2);
$this->setCallback(array(....), $second);

/////



$curl->addSession('url1', $opts);
$curl->addSession('url2', $opts);
$curl->addSession('url3', $opts);
$curl->addSession('url4', $opts);
$curl->addSession('url5', $opts);
$curl->addSession('url6', $opts);
$this->setCallback(array(....)); //6 результатов будет обрабатывать указанная функция

*/


*/



Спустя 1 минута, 59 секунд (15.05.2012 - 22:01) Игорь_Vasinsky написал(а):
нафига для курла класс??? там 10 строчек от силы юзается))))
вот у меня клас мультикурла с массивом юзер агентов и прокси - вот это весч!

Спустя 52 секунды (15.05.2012 - 22:02) forza написал(а):
Сам класс то забыл выложить )

Посмотрите

Спустя 6 минут, 32 секунды (15.05.2012 - 22:09) Игорь_Vasinsky написал(а):
мало доков, много методов...
на скока мне известно - курл - это уже есть обёртка для работы через сокеты

Спустя 2 минуты, 16 секунд (15.05.2012 - 22:11) redreem написал(а):
курл-класс - дело сугубо индивидуальное под каждую задачу. думаю нет смысла делать такой класс.

Спустя 2 минуты, 52 секунды (15.05.2012 - 22:14) Игорь_Vasinsky написал(а):
а класс на скока я понимаю - должен быть именно гибким, чтоб оперировать им - не внедряясь в него.

Спустя 2 минуты, 32 секунды (15.05.2012 - 22:16) Nikitian написал(а):
Добавьте поддержку мультикурла - очень пригодится для парсеров wink.gif

Спустя 2 минуты, 24 секунды (15.05.2012 - 22:19) Игорь_Vasinsky написал(а):
у парсеров - уже всё схвачено. wink.gif

Спустя 11 минут, 48 секунд (15.05.2012 - 22:31) johniek_comp написал(а):
Игорь_Vasinsky
парсермен smile.gif

Спустя 22 минуты, 48 секунд (15.05.2012 - 22:53) forza написал(а):
Мультикурл уже определен.

$curl->addSession('url1', $opts);
$curl->addSession('url2', $opts);
$curl->addSession('url3', $opts);
$curl->addSession('url4', $opts);
$curl->addSession('url5', $opts);
$curl->addSession('url6', $opts);


Забыл добавить ) Запускает это все дело $curl->run();


_____________
Заработок для веб-разработчиков: CodeCanyon
Мое Портфолио
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.