В общем не разобрался я с этими: curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); //Из какого файла читать curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); //В какой файл записывать Ну и пох на них. Сделал так чтобы в заголовке куки выводило, вырезаю значит их: Code: $cookiepage = explode("\n", $result); for ($searchcookie_i=0;$searchcookie_i<count($cookiepage);$searchcookie_i++) { if (strpos("salt".$cookiepage[$searchcookie_i], 'Set-Cookie') > 0) { $p1 = strpos($cookiepage[$searchcookie_i], "Set-Cookie: ")+12; $p2 = strlen($cookiepage[$searchcookie_i])+$p1; $cookie = substr($cookiepage[$searchcookie_i], $p1, $p2-$p1); } } и вставляю сюда: Code: $url = "http://example"; $ch = curl_init(); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16"); curl_setopt($ch, CURLOPT_URL,$url); // set url to post to curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable curl_setopt($ch, CURLOPT_TIMEOUT, 3); // times out after 4s curl_setopt($ch, CURLOPT_COOKIE, $cookie); $result = curl_exec($ch); // run the whole process curl_close($ch); страница почемуто не загружается, а если взять эти строки из переменной и вставить в ручную: Code: $url = "http://example"; $ch = curl_init(); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16"); curl_setopt($ch, CURLOPT_URL,$url); // set url to post to curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable curl_setopt($ch, CURLOPT_TIMEOUT, 3); // times out after 4s curl_setopt($ch, CURLOPT_COOKIE, "blablabla=blablabla"); $result = curl_exec($ch); // run the whole process curl_close($ch); тогда все работает. Вопрос таков, почему с переменной не читает?)
Все разобрался с куками, вернулся к: curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); //Из какого файла читать curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); //В какой файл записывать Надо было путь полный прописывать) curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT']."/cookie.txt");
Все зависит от натсройки сервера, зачастую просто 'cook' хватает. Ну а вообще советую куки парсить через CURLOPT_HEADER 1 в переменную.
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); //в любой заготовленый файл записывать curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); //из него же читать проюуй на другом серве
Жаль, что в PHP не поддерживается опция библиотеки курла "CURLOPT_COOKIELIST", которая решила бы все эти "проблемы" с куками...