Curl

Тема в разделе "Регулярные выражения и парсеры", создана пользователем vital, 3 ноя 2010.

  1. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    Сабж. Собственно готовый для копипасты код, с помощью которого можно залогинится на большинство ресурсов.
    Код (PHP):
    <?php $ch = curl_init("то_где_нас_логинят");

    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_NOBODY, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)');
    curl_setopt($ch, CURLOPT_REFERER, 'откуда_мы_типа_пришли');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_COOKIESESSION, TRUE);

    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, 'user_email=aa%40aa.aa&user_password=112233&redirect=%2F&submitted=1&ajax=false'); //Параметры которые передаются. У каждого свои.
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $req = curl_exec($ch);
    $headers = explode("\n", $req); // Делаем массив из заголовоков ответа

    curl_setopt($ch,CURLOPT_URL,'то_куда_надо_зайти);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_NOBODY, 0);
    curl_setopt($ch, CURLOPT_POST, 0);

    $cookie = array();
    for ($i = 0; $i < count($headers); $i++) { //По всем его элементам
    if (strpos($headers[$i], '
    Set-Cookie:') !== FALSE) { // Если у тек-й элемент - это заголовок печенек
    $c = explode('
    ; ', substr($headers[$i], strlen('Set-Cookie:'))); // Обрезаем строку сет-куки и разбиваем в массив, разделитель не пробел, а "; " потому что в строке кук Expires тоже есть пробелы. И получается кривое разбиение.
    foreach ($c as $k=>$v) // По всем элементам получившегося массива
    {
    if (!empty($v) && ( // Если текущий элемент не пустой, и не один их не нужных заголовков, то добавляем его в массив с куками
    !strstr($v, '
    source') &&
    !strstr($v, '
    path') &&
    !strstr($v, '
    domain') &&
    !strstr($v, '
    expires'))) $cookie[]=$v;
    }

    }
    }
    curl_setopt($ch, CURLOPT_COOKIE, implode('
    ;',$cookie)); // Из массива снова делаем строку..
    $html=curl_exec($ch); //Тут мы залогинены.
    curl_close($ch);?>
     
Загрузка...
Похожие Темы - Curl
  1. sasha465
    Ответов:
    0
    Просмотров:
    3.555
  2. VadikV
    Ответов:
    4
    Просмотров:
    4.205
  3. admin
    Ответов:
    1
    Просмотров:
    4.722

Поделиться этой страницей