Использование инструмента (как Fiddler) для захвата HTTP запроса:
GET http://www.sns.gov.uk/Reports/Report.aspx?ReportId=1&PostCode=EH1%201HN HTTP/1.1
Host: www.sns.gov.uk
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36
Referer: http://www.sns.gov.uk/default.aspx?DisplayMessage=False
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en,zh-CN;q=0.8,zh;q=0.6,zh-TW;q=0.4,ja;q=0.2
Cookie: ASP.NET_SessionId=yn1jfjwgzhc5eobnskqux1mm; sessionCookie=isConnected=false; UsrSession=UserGUID=7a8e0dc4-4346-437d-ac80-393d8fa4fc8e; GWCensus=SessionGUID={3ab2206e-9e0f-4602-8fb7-972cb1f5338c}; civicAllowCookies=yes; __utmt=1; __utmt_~1=1; __utmt_~2=1; __utma=82977748.1471390697.1435401464.1435401464.1435401464.1; __utmb=82977748.5.10.1435401464; __utmc=82977748; __utmz=82977748.1435401464.1.1.utmcsr=stackoverflow.com|utmccn=(referral)|utmcmd=referral|utmcct=/questions/31087581/html-parsing-using-php
This picutre exactly shows what you need to build your HTTP Request:
1.GET method;
2.Referer;
3.Cookie (!important)
Вы имеете в виду ваши 'file_get_contents()' вызов обеспечивает другой URL, чем то, что вы ожидаете? Тогда, скорее всего, у вас есть какая-то форма сессии. Так что желаемый URL-адрес нельзя вызывать напрямую, но только в контексте некоторого сеанса. – arkascha
, более конкретно, @arkascha, правильным процессом было бы ввести информацию в http://www.sns.gov.uk, а затем будет создана следующая веб-страница, которую я хочу отобразить. Таким образом, URL-адрес не может быть вызван напрямую, как вы писали. В таком случае, что я должен делать? – Marios
Проверьте необработанный HTTP-запрос, особенно заголовок запроса и тело, убедитесь, что файлы cookie, референт, источник и т. Д. Совпадают. – PHPJungle