http://
https://
http:// – https:// — 访问 HTTP(s) 网址
说明
允许通过 HTTP1.0的GET方法,以只读访问文件或资源。
HTTP 请求会附带一个Host:头,用于兼容基于域名的虚拟主机。
如果在你的php.ini文件中或字节流上下文(context)配置了user_agent字符串,它也会被包含在请求之中。
数据流允许读取资源的 body,而 headers 则储存在了
可选项
封装协议概要
|属性 | 支持
|- |-
|受 allow_url_fopen 限制|Yes
|允许读取 |Yes
|允许写入 |No
|允许添加 |No
|允许同时读和写 |N/A
|支持 stat() |No
|支持 unlink() |No
|支持 rename() |No
|支持 mkdir() |No
|支持 rmdir() |No
更新日志
版本 | 说明 |
---|---|
4.3.7 | 检测 IIS 服务器避免 “SSL: Fatal Protocol Error” 错误。 |
4.3.0 | 添加 https://。 |
4.0.5 | 增加了对重定向的支持。 |
范例
Example #1 检测重定向后最终的 URL
|
|
注释
Note
:openssl
扩展启用后才能够支持 HTTPS 协议。HTTP
连接是只读的;
还不支持对一个HTTP
资源进行写数据或者复制文件。
比如发送POST
和PUT
请求,可以在 HTTP Contexts
的支持下实现。
参见
HTTP context 选项$http_response_header
stream_get_meta_data()
-从封装协议文件指针中取得报头/元数据
User Contributed Notes
|
|
Passing authentication information in the URL as in “https://user:password@example.com“ works for HTTP “Basic” access authentication but not for HTTP “Digest” access authentication. You can use the cURL functions for servers requesting HTTP “Digest” access authentication.
“The stream allows access to the body of the resource; the headers are stored in the $http_response_header variable. Since PHP 4.3.0, the headers are available using stream_get_meta_data().”
This one sentence is the only documentation I have found on the mysterious $http_response_header variable, and I’m afraid it’s misleading. It implies that from 4.3.0 onward, stream_get_meta_data() ought to be used in favor of $http_response_header.
Don’t be fooled! stream_get_meta_data() requires a stream reference, which makes it ONLY useful with fopen() and related functions. However, $http_response_header can be used to get the headers from the much simpler file_get_contents() and related functions, which makes it still very useful in 5.x.
Also note that even when file_get_contents() and friends fail due to a 4xx or 5xx error and return false, the headers are still available in $http_response_header.
If you want to send more than one custom header, just make header an array: