gpt4 book ai didi

php - 如何通过流获取标题?

转载 作者:可可西里 更新时间:2023-11-01 17:32:27 27 4
gpt4 key购买 nike

考虑这个函数:

function use_fopen($url, $make_post_field, $headers = '') {

$context = array(
'http' => array(
'method' => 'POST',
'timeout' => '60',
'content' => $make_post_field)
);
$header = "Content-type: application/x-www-form-urlencoded\r\n";
if (!empty($headers)) {
foreach ($headers as $head) {
$header.="$head\r\n";
}
}

$context['http']['header'] = $header;
$context = stream_context_create($context);

//$contents = @file_get_contents($url, null, $context);
$fp = fopen($url, 'r', false, $context);

$stream_meta_data = @stream_get_meta_data($fp);
print_r($stream_meta_data );
fclose($fp);
}

我使用这样的函数:

$headers = array ('baz: bar');
$data = array ('foo' => 'bar', 'bar' => 'baz');
$data = http_build_query($data);
print(use_fopen("http://www.example.com/phpinfo.php", $data, $headers));

由于目标 url 是 phpinfo,我可以验证 $_POST['foo'] 设置为 bar 并且

CONTENT_TYPE = application/x-www-form-urlencoded

HTTP_FOO = baz

所以看起来上下文工作正常,但是当我使用

$stream_meta_data = @stream_get_meta_data($fp);
print_r($stream_meta_data );

我明白了

Array
(
[timed_out] =>
[blocked] => 1
[eof] =>
[wrapper_data] => Array
(
[0] => HTTP/1.1 200 OK
[1] => Date: Tue, 02 Aug 2016 11:46:36 GMT
[2] => Server: Apache
[3] => Connection: close
[4] => Content-Type: text/html; charset=UTF-8
)

[wrapper_type] => http
[stream_type] => tcp_socket/ssl
[mode] => r
[unread_bytes] => 8061
[seekable] =>
[uri] => http://wwwexample.com/phpinfo.php
)

为什么content-type不对,实际上是header的HTTP_FOO没有显示在这里?下面的更改也没有帮助。我应该怎么办?获取自定义 header 和正确的内容类型?

$contents = @file_get_contents($url, null, $context);
print_r(get_headers($url));

我搜索了 SO 并找到了这个 How to get HTTP response headers after POST request in PHP?但正如我所说,我尝试了 stream_get_meta_data($fp)get_headers($url) 但我没有得到我的自定义 header 。我还应该做什么?

最佳答案

因为我遇到了和你一样的问题,所以从谷歌找到了你的帖子。我用函数 stream_context_set_default 解决了它.我想我会把它发布给下一个从谷歌偶然发现的人,或者如果你仍然需要一个解决方案。

关于php - 如何通过流获取标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38719824/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com