Witam
Potrzebuję zastosować curl-a do odwiedzenia pewnego serwisu i pobrania z niego danych o produktach. Z tym że najpierw muszę się do niego zalogować no a potem pobrać dane o kategoriach i znajdujących się w nich produktach, więc będzie trochę odwołań pod różne adresy. No i teraz związane z tym pytanie.
Czy przy odwoływaniu się po różne adresy muszę za kazdym razem wywoływać curl_init oraz potem zamykać to połaczenie
$c = curl_init('adres');
....
curl_close($c);
czy też mogę zmieniać poprostu URL, potem wywołac curl_exec i tak w koło np.
private function curlExec($url,$login = false,$close = false) {
$cookie_file = dirname(__FILE__).'/cookie_import.txt';
if($login === true) {
$postFields['userLogin'] = 'login';
$postFields['userPassword'] = 'haslo';
$this->handler = curl_init();
curl_setopt($this->handler, CURLOPT_POSTFIELDS, $postFields);
}
curl_setopt($this->handler, CURLOPT_URL, $url);
curl_setopt($this->handler, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($this->handler, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($this->handler, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12");
curl_setopt($this->handler, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($this->handler);
if($close === true) curl_close($this->handler);
return $data;
}
$this->curlExec('http://adres/login',true);
$this->curlExec('http://adres/kategorie');
$this->curlExec('http://adres/produkt1');
$this->curlExec('http://adres/produkt2');
//....
$this->curlExec('http://adres/produktN',false,true);