$file='www.xxx.com.cn';
$fp = fsockopen($file, 80, $errno, $errstr);
if (!$fp) {
echo "999";
echo "$errstr ($errno) <br />\n";
} else {
fputs($fp,"GET / HTTP/1.0\nHost: $file\n\n");
while(!feof($fp)) {
echo file_get_contents($fp);
}
fclose($fp);
}报错:
HTTP/1.1 400 Bad Request Content-Type: text/html Date: Fri, 08 Apr 2011 06:46:11 GMT Connection: close Content-Length: 39
Bad Request (Invalid Hostname)
不知道是什么原因引起的?希望高手帮帮忙!
浏览器在访问网站是会添加很多的http头信息,比如,agent, 浏览器表示,cookie等等。所以你要模拟浏览器去访问这个网站,就需要用curl来实现,在发送请求的时候也加入以上的http头信息。
$url = "http://www.xxx.com.cn";
$ch = curl_init();
// 2. 设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_HTTPHEADER,array(
"User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; TheWorld)",
"Accept-Language: en"
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
// 3. 执行并获取HTML文档内容
$output = curl_exec($ch);
var_dump($output);
// 4. 释放curl句柄
curl_close($ch);
这是我用curl的代码,但还是报错 Bad Request!