stream_context_get_default

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

stream_context_get_default获取默认流上下文

描述

stream_context_get_default(?array $options = null): resource

返回默认流上下文,该上下文在调用文件操作(fopen()file_get_contents() 等)时使用,并且没有提供上下文参数。可以使用此函数指定默认上下文的选项,使用与 stream_context_create() 相同的语法。

参数

options
options 必须是一个关联数组,包含以 $arr['wrapper']['option'] = $value 格式表示的关联数组,或者为 null

返回值

一个流上下文 resource

变更日志

版本 描述
8.0.0 options 现在可以为 null。

示例

示例 #1 使用 stream_context_get_default()

<?php
$default_opts
= array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar",
'proxy'=>"tcp://10.54.1.39:8000"
)
);


$alternate_opts = array(
'http'=>array(
'method'=>"POST",
'header'=>"Content-type: application/x-www-form-urlencoded\r\n" .
"Content-length: " . strlen("baz=bomb"),
'content'=>"baz=bomb"
)
);

$default = stream_context_get_default($default_opts);
$alternate = stream_context_create($alternate_opts);

/* 发送一个常规的 GET 请求到 10.54.1.39 上的代理服务器
* 对于 www.example.com,使用 $default_opts 中指定的上下文选项
*/
readfile('http://www.example.com');

/* 发送一个 POST 请求直接到 www.example.com
* 使用 $alternate_opts 中指定的上下文选项
*/
readfile('http://www.example.com', false, $alternate);

?>

参见

添加笔记

用户贡献笔记 1 笔记

1
RQuadling at GMail dot com
17 年前
如果您使用的是 stream_context_get_default(),并且发现某些函数仍然无法正常工作,请确保它们不是基于 libxml 函数(DOM、SimpleXML 和 XSLT)。这些函数需要它们自己的上下文。

您可以轻松地使用以下代码设置它们...

<?php
// 定义默认的、系统范围的上下文。
$r_default_context = stream_context_get_default
(
array
(
'http' => array
(
// 所有 HTTP 请求都通过端口 8080 上的本地 NTLM 代理服务器。
'proxy' => 'tcp://127.0.0.1:8080',
'request_fulluri' => True,
),
)
);

// 尽管我们说是系统范围的,但某些扩展需要一些额外的配置。
libxml_set_streams_context($r_default_context);
?>
To Top