Перейти к содержимому






Фотография

Используем CURL в PHP

Написано staff , 31 Январь 2013 · 1 867 Просмотров

Скрипт для начинающих программистов на PHP
Что может скрипт :lol:

1. Получать данные, которые надо передать на удалённую форму
2. Использовать прокси сервера, для передачи данных :)
3. Настройку timeout при передачи данных

public function getCurlData($url, $post = '', $validateCookie = false, $cookie = '', $useProxy = false, $proxyIP = '', $proxyPort = '', $timeout = '') {
		try {
			$ch = curl_init($url);
 
			if (!empty($post)) {
				curl_setopt($ch, CURLOPT_POST, 1); //указывает, что передаём данные методом POST
				curl_setopt($ch, CURLOPT_POSTFIELDS, $post); //передаваеммые данные из формы (form)
			}
			curl_setopt($ch, CURLOPT_HEADER, 0);  // DO NOT RETURN HTTP HEADERS
			curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
 
			curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"); //данные браузера
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //хотим ли мы следовать на ссылку редиректа :)
 
						//блок считывания cookies, для авторизации на сайте :)
			if ($validateCookie) {
				if ($cookie == '') {
					$cookie_data = file($this->_cookieFile);
 
					for ($i = 4; $i < count($cookie_data); $i++) {
						$tmp = explode("\t", $cookie_data[$i]);
						$cookie .= $tmp[5] . '=' . trim($tmp[6]) . ';';
					}
					$cookie_data = $cookie;
 
					curl_setopt($ch, CURLOPT_COOKIEFILE, $this->_cookieFile);
					curl_setopt($ch, CURLOPT_COOKIEJAR, $this->_cookieFile);
					$cookie = "Cookie: " . $cookie_data;
				} else {
					$cookie = "Cookie: " . $cookie;
				}
				curl_setopt($ch, CURLOPT_COOKIE, $cookie); //записываем полученные cookies в запрос, для дальнейшей обработки :)
			}
 
			if ($useProxy) {
				curl_setopt($ch, CURLOPT_PROXY, $proxyIP . ':' . $proxyPort);
				//curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
			}
 
			if (!empty($referer)) {
				curl_setopt($ch, CURLOPT_REFERER, $refererSite);
			}
 
			if (!empty($timeout)) {
				curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
			}
 
			$result = curl_exec($ch);
 
			curl_close($ch);
 
			return $result;
		} catch (Exception $e) {
			throw new PortalException(500, Prado::localize('error') . '|' . $e->getMessage());
		}
	}

На выходе возвращает данные, желаемого сайта :)
Пользуемся на здоровье :)


  • 0



Апрель 2018

П В С Ч П С В
      1
2345678
9101112131415
16171819202122
23242526 27 2829
30      

Последние записи

Последние комментарии