加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

获取php virtual()响应头

发布时间:2021-08-28 03:46:58 所属栏目:大数据 来源: https://www.jb51.cc
导读:以下是一个子请求并输出其正文HTTP响应内容: ?PHP if (condition()) { virtual('/vh/test.PHP');}? 有没有办法获得其响应标头? 我的目标是将我的请求(带有请求标头)转发到其他主机上的其他位置,这是通过Apache ProxyPass指令完成的,并将其响应(标头和内容)

以下是一个子请求并输出其正文HTTP响应内容:

<?PHP 
if (condition()) {
    virtual('/vh/test.PHP');
}
?>

有没有办法获得其响应标头?

我的目标是将我的请求(带有请求标头)转发到其他主机上的其他位置,这是通过Apache ProxyPass指令完成的,并将其响应(标头和内容)设置为对我的请求的响应.

所以我的服务器将充当反向代理.但它会在转发请求之前测试一些需要完成PHP上下文的条件.

解决方法:

可以说,当前页面有自己的原始标题.通过使用virtual(),您强制apache执行子请求,从而生成其他虚拟标头.您可能会在array_diff()之间获得这两个标题组(通过将每个标题组保存为apache_response_headers())的区别:

<?PHP
$original   = apache_response_headers();

virtual('somepage.PHP');

$virtual    = apache_response_headers();
$difference = array_diff($virtual, $original);

print_r($difference);
?>

但是,由于this,它无法帮助您更改当前请求标头:

To run the sub-request, all buffers are terminated and flushed to the
browser, pending headers are sent too.

这意味着,您不能再发送标头了.您应该考虑使用cURL

<?PHP
header('Content-Type: text/plain; charset=utf-8');

$cUrl = curl_init();

curl_setopt($cUrl, CURLOPT_URL, "http://somewhere/somepage.PHP");
curl_setopt($cUrl, CURLOPT_HEADER, true);
curl_setopt($cUrl, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($cUrl);
curl_close($cUrl); 

print_r($response);
?>

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读