由于目标服务器响应时将错误代码存在head中,有什么办法可以获取head吗?我是用file_get_contents函数发送的请求。
下面是发送请求的代码,随便从文档中粘了段,我的代码也和这个差不多。
怎样才能获取到返回的head信息?<?php$postdata = http_build_query(
array(
'var1' => 'some content',
'var2' => 'doh'
)
);$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);$context = stream_context_create($opts);$result = file_get_contents('http://example.com/submit.php', false, $context);?>
下面是发送请求的代码,随便从文档中粘了段,我的代码也和这个差不多。
怎样才能获取到返回的head信息?<?php$postdata = http_build_query(
array(
'var1' => 'some content',
'var2' => 'doh'
)
);$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);$context = stream_context_create($opts);$result = file_get_contents('http://example.com/submit.php', false, $context);?>
解决方案 »
- 求助!mysql数据库中文输出乱码 有图有真相
- 如何用PHP实现开启DHCP服务和关闭DHCP服务;设置DHCP分配的地址范围等。
- 急!preg_match_all 函数匹配较大文本本地测试可以 上传到服务器上就用不了
- 请问下面这段代码用PHP怎么解密
- 各位专家看下我的防注处理,是否有问题?
- 散分:——调通CSDN和资源管理器树
- MYSQL中是否有类似ms sql的newid()函数,随机取记录
- 大家都用什么工具来制作PHP页面呢?
- 请高手帮忙看一下代码
- 第一次提问,希望各位高人能给与帮助,多谢~~~~~~~~~~
- 如何给搜索结果加链接?
- 关于PHP 的extends 使用中的问题!很郁闷!大侠门进来帮忙看看!
2.用CURL获取head的代码如下:
curl_setopt($ch,CURLOPT_HEADER,1);
<?php
$url = 'http://www.example.com';print_r(get_headers($url));print_r(get_headers($url, 1));
?>
输出结果:
[code=BatchFile]Array
(
[0] => HTTP/1.1 200 OK
[1] => Date: Sat, 29 May 2004 12:28:13 GMT
[2] => Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
[3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
[4] => ETag: "3f80f-1b6-3e1cb03b"
[5] => Accept-Ranges: bytes
[6] => Content-Length: 438
[7] => Connection: close
[8] => Content-Type: text/html
)Array
(
[0] => HTTP/1.1 200 OK
[Date] => Sat, 29 May 2004 12:28:14 GMT
[Server] => Apache/1.3.27 (Unix) (Red-Hat/Linux)
[Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT
[ETag] => "3f80f-1b6-3e1cb03b"
[Accept-Ranges] => bytes
[Content-Length] => 438
[Connection] => close
[Content-Type] => text/html
)
[/code]
function f_get()
{
$host = "www.7qb.cn";
$file = "/";
$fp = fsockopen( $host , 80, $errno, $errstr, 30 );
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$request = "GET $file HTTP/1.1\r\n";
$request .= "Accept: */*\r\n";
$request .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;)\r\n";
$request .= "Host: $host\r\n";
//$request .= "Range: bytes=1321678-\r\n";
$request .= "Connection: close\r\n";
$request .= "\r\n"; fwrite($fp, $request);
while (!feof($fp)) {
echo fgets($fp, 128);
//这里获取数据
if ($i++>9)
{
break;
}
}
fclose($fp);
}
}
以为你只想要投信息。向服务器发送请求了,肯定是要返回头信息的。
但是,这需要HTTP客户端功能,file_get_contents不是专门用来发送HTTP请求的,不会有这些功能。
PHP实现HTTP客户功能的方法很多,
推荐lz使用: Zend_HTTP操作起来很方便。