настройте curl, чтобы получить www.google.com - PullRequest
0 голосов
/ 21 декабря 2011

Как правильно получить ответ curl, используя php curl.Я пытался изменить заголовок запроса и пользовательский агент

GET / HTTP/1.1
User-Agent:  Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7
Host: www.google.com
Accept: */*
Accept-Encoding: gzip,deflate,sdch

, но он не работает, я получаю 302 ошибку

HTTP/1.1 302 Found
Location: http://www.google.co.in/
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Set-Cookie: PREF=ID=30a99703e541807e:FF=0:TM=1324467004:LM=1324467004:S=0VlXyYEJtxKQ_Pqk; expires=Fri, 20-Dec-2013 11:30:04 GMT; path=/; domain=.google.com
Date: Wed, 21 Dec 2011 11:30:04 GMT
Server: gws
Content-Length: 221
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN

вывод html, который я получаю,

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.co.in/">here</A>.
</BODY></HTML>

как получать и публиковать данные, используя php curl, как если бы мы делали это из браузера.

вот мой php код для curl_setopt

curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERAGENT, " Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate,sdch'); 

Ответы [ 2 ]

5 голосов
/ 21 декабря 2011

Установите параметр cURL CURLOPT_FOLLOWLOCATION на true:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

Будет указывать cURL следовать любым заголовкам «Location:», которые отправляет сервер. Более подробная информация доступна в документации .

1 голос
/ 21 декабря 2011
HTTP/1.1 302 Found
Location: http://www.google.co.in/

говорит вам перейти к http://www.google.co.in/ для содержимого, поэтому вам нужно выполнить еще одну последовательность cURL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...