Вопрос по CURLам

BoFFiN

Новичок
TuBu

$headers = array(
"Host: lalala",
"Accept-Language: lalala",
Referer: урл
...
);
curl_setopt ($ch,CURLOPT_HTTPHEADER, $headers);
Вот, что не пойму, если можно послать заголовки так, то зачем
опция CURLOPT_REFERER нужна?
 

BoFFiN

Новичок
neko

честно скажу, только утрудняет... :))

-~{}~ 20.07.04 14:14:

Восчем разобрался, дело было в строчке:
Cookie: uid=rBABDEDj+JQAAD+wAx5mAg==; PHPSESSID=20af69b3a15d33397b7d780a2f274034
Ну т.е. нужно Уид куки и Ид сессии живой подставлять..
А можно с помощью курлов читать, что в ответ сервер пишет?
 

neko

tеam neko
можно можно

читать надо преимущественно документацию
 

BoFFiN

Новичок
neko

Так весь секрет в чём, задать вопрос, и пойти почитать ман...
придти и сравнить, .. :))
ну ваще курлы весчь замечательная, неохото было с ними разбираться по началу, но простота работы с ними меня заинтриговала.. :)

-~{}~ 20.07.04 14:43:

Тем более, что в документации чаще встречается ответ:
К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.
 

BoFFiN

Новичок
neko
лазил, лазил... там о функциях пхп&libcurl = 0?
есть такая функция curl_getinfo()
но она строчку:
Cookie: uid=rBABDEDj+JQAAD+wAx5mAg==; PHPSESSID=20af69b3a15d33397b7d780a2f274034
не возвращает?
Как мне её можно получить?
 

BoFFiN

Новичок
TuBu
PHP:
$ch = curl_init("http://www");
        @$fp = fopen ("file", "wb");
        curl_setopt ($ch, CURLOPT_PROXY,"*:*");
        curl_setopt ($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt ($ch, CURLOPT_FILE, $fp);
        curl_setopt ($ch, CURLOPT_HEADER, 1);
        $out=curl_exec ($ch);
         echo $out;
        curl_close ($ch);
        fclose ($fp);
Выводит 1. и псё.
 

neko

tеam neko
еще одно чучело просулось

ПРОЧТИ НАКОНЕЦ ДОКУМЕНТАЦИЮ

не по тем отрывкам которые тебе заботливо тут суют
а по всему curl_setopt() для начала
 

BoFFiN

Новичок
C человеками хочешь по-хорошему, а они всё грубят и грубят... Хамы! (с) Что-то
neko
Цитирую man's:
CURLOPT_HEADER: При установке этого параметра в ненулевое значение результат
будет включать полученные заголовки.
Лично я это понимаю, так при установке
curl_setopt($ch,CURLOPT_HEADER,1);
я должен получать заголовки, ведь рядом не стоит пометки, что
CURLOPT_RETURNTRANSFER: При установке этого параметра в ненулевое значение CURL
будет возвращать результат, а не выводить его.
Поэтому сразу и не понятно, почему curl_setopt($ch,CURLOPT_HEADER,1);
Вообщем хам ты... :)

З.Ы. Когда мне кажется, что я что-то понимаю, я понимаю, что мне только кажется, что я что-то понимаю! (с)Кто-то....
 

neko

tеam neko
по поводу того что тебе что-то непонятно можешь обращаться когда прочтешь хотя бы по обсуждаемой функции доку целиком, а не по диагонали.
 

BoFFiN

Новичок
neko

по поводу того что тебе что-то непонятно можешь обращаться когда прочтешь хотя бы по обсуждаемой функции доку целиком, а не по диагонали.
Мне вот на данный момент непонятны 2 вещи:
1. Как ты опознаешь прочитал я доку или нет? :) вопрос риторический.
2. При помощи такого скрипта:
PHP:
$curl=curl_init($url);
curl_setopt($curl,CURLOPT_HEADER,1);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$stdout=curl_exec($curl);
curl_close($curl);
echo $stdout;
Я конечно же получаю заголовки, но уже после выполнения запроса, а строчка:
Set-Cookie: PHPSESSID=*;
мне нужна во время...
Можно конечно открыть соединение, взять PHPSESSID, открыть второе соединение и подставить туда полученный PHPSESSID, но по-моему есть путь лучше? не так ли?
 

neko

tеam neko
BoFFiN

ты не читал фак на танке или тебе очень хочется чтобы твой скрипт поддерживал persistent connections?

я все таки склоняюсь к первому.
http://phpfaq.ru/na_tanke
 

BoFFiN

Новичок
neko
да.. мы явно друг друга не понимаем... и при чём тут "танкистам" я не понимаю...
постоянные соединения, мне тоже не нужны...

-~{}~ 30.07.04 15:37:

С помощью fsockopen можно сделать это примерно так:
PHP:
$fp = fsockopen("http://www.*.ru", 80, $errno, $errstr);
fputs($fp, "\n");
fputs($fp, "GET http://* HTTP/1.0\n");
fputs($fp, "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*\n");
fputs($fp, "Referer: http://www.*\n");
fputs($fp, "Accept-Language: ru\n");
fputs($fp, "Proxy-Connection: Keep-Alive\n");
fputs($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MRA 2.5 (build 00387))\n");
fputs($fp, "Host: www.*.ru\n");
fputs($fp, "\r\n");
$word="Cookie: [0-9a-Z]{30}";
 while(!feof($fp))  {
     echo fgets($fp, 1000);
$search=fgets($fp);
if(eregi($word,$search, $pock)) {
$session = $pock[0];
                                }
}
echo $session;
fclose($fp);
После чего в session по идее лежит строка с Cookie, терь можно смело открыть
второе соединение и подставить туда требуемую строку...
А вот как ету строчку получить с помощью Курлов, без всей этой кутермы?
Или это не возможно? Или возможно, но примерно также?
 

BoFFiN

Новичок
Ямерт
Нет... странно, уже второй задает этот вопрос... :)

Файл скачать хотим!
 

Krause

Guest
есть ли какая-нибудь статься по установке cURL под линухом и Windows XP? спасибо
 
Сверху