Функция для работы с cURL

  1. function koecurl($url, $post='', $mode=array()) {
  2.  
  3. $defaultmode = array('charset' => 'utf-8', 'ssl' => 1, 'cookie' => 1, 'headers' => 1, 'useragent' => 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.10.229 Version/11.61');
  4.  
  5. foreach ($defaultmode as $k => $v) {
  6. if (!isset($mode[$k]) ) {
  7. $mode[$k] = $v;
  8. }
  9. }
  10.  
  11. $ch = curl_init();
  12. curl_setopt($ch, CURLOPT_URL, $url);
  13. curl_setopt($ch, CURLOPT_HEADER, $mode['headers']);
  14. curl_setopt($ch, CURLOPT_REFERER, $url);
  15. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  16. curl_setopt($ch, CURLOPT_USERAGENT, $mode['useragent']);
  17. curl_setopt($ch, CURLOPT_ENCODING, $mode['charset']);
  18. curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
  19. curl_setopt($ch, CURLOPT_TIMEOUT, 200);
  20. if ($post) {
  21. curl_setopt($ch, CURLOPT_POST, 1);
  22. curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  23. }
  24. if ($mode['cookie']) {
  25. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt');
  26. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');
  27. }
  28. curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
  29. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  30. if ($mode['ssl']) {
  31. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  32. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  33. }
  34. $data = curl_exec($ch);
  35. curl_close($ch);
  36. return $data;
  37. }
пример авторизации в контакте
  1. $login = '[email protected]';
  2. $password = ''; // тут пароль
  3.  
  4. $vk = koecurl('https://login.vk.com/?act=login', array('charset' => 'windows-1251'));
  5.  
  6. if (preg_match_all('#<input type="hidden" name="([^"]+)" value="([^"]+)"#', $vk, $hidden)) {
  7. $post = array('expire' => 0, 'email' => $login, 'pass' => $password);
  8. foreach ($hidden[1] as $k => $v)
  9. $post[$v] = $hidden[2][$k];
  10. }
  11.  
  12. $vk = koecurl('https://login.vk.com/?act=login', $post, array('charset' => 'windows-1251'));
  13. echo $vk;
впринципе пытался зацепить все аспекты для работы с курл, можно грабить и не париться, на кривом хосте где не работают куки даже не пытайтесь
первый вызов грабит форму и заполняет массив $post чтоб его отдать при авторизации и собирает куки
  второй раз уже грузиться страница, главное куки заполучить
  далее думаю сами разберетесь

Реклама

Мы в соцсетях

tw tg yt gt