PHP stream_context_create()作用和用法分析


作用:创建并返回一个文本数据流并应用各种选项,可用于fopen(),file_get_contents()等过程的超时设置、代理服务器、请求方式、头信息设置的特殊过程。
函数原型:resource stream_context_create ([ array $options [, array $params ]] )
用法
例子一:

复制代码 代码如下:

<?php
$opts = array( 'http-->array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
/* Sends an http request to www.phpstudy.net
with additional headers shown above */
$fp = fopen('http://www.phpstudy.net', 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>

例子二:
复制代码 代码如下:

<?php
$opts = array( 'http-->array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
?>
You would setup the header this way:
<?php
$opts = array( 'http-->array(
'method'=>"GET",
'header'=>array("Accept-language: en",
"Cookie: foo=bar",
"Custom-Header: value")
)
);
$context = stream_context_create($opts);
?>

例子三:
复制代码 代码如下:

<?php
$opts = array('http' => array('proxy' => 'tcp://127.0.0.1:8080', 'request_fulluri' => true));
$context = stream_context_create($opts);
$data = file_get_contents('http://www.phpstudy.net', false, $context);
echo $data;
?>

例子四:
复制代码 代码如下:

<?php
function do_post_request($url, $postdata, $files = null)
{
$data = "";
$boundary = "---------------------".substr(md5(rand(0,32000)), 0, 10);
//Collect Postdata
foreach($postdata as $key => $val)
{
$data .= "--$boundary\n";
$data .= "Content-Disposition: form-data; name=\"".$key."\"\n\n".$val."\n";
}
$data .= "--$boundary\n";
//Collect Filedata
foreach($files as $key => $file)
{
$fileContents = file_get_contents($file['tmp_name']);
$data .= "Content-Disposition: form-data; name=\"{$key}\"; filename=\"{$file['name']}\"\n";
$data .= "Content-Type: image/jpeg\n";
$data .= "Content-Transfer-Encoding: binary\n\n";
$data .= $fileContents."\n";
$data .= "--$boundary--\n";
}
$params = array('http' => array(
'method' => 'POST',
'header' => 'Content-Type: multipart/form-data; boundary='.$boundary,
'content' => $data
));
$ctx = stream_context_create($params);
$fp = fopen($url, 'rb', false, $ctx);
if (!$fp) {
throw new Exception("Problem with $url, $php_errormsg");
}
$response = @stream_get_contents($fp);
if ($response === false) {
throw new Exception("Problem reading data from $url, $php_errormsg");
}
return $response;
}
//set data (in this example from post)
//sample data
$postdata = array(
'name' => $_POST['name'],
'age' => $_POST['age'],
'sex' => $_POST['sex']
);
//sample image
$files['image'] = $_FILES['image'];
do_post_request("http://www.phpstudy.net", $postdata, $files);
?>



相关阅读:
安全地编写SQLserver扩展存储过程
Windows Server 2003 图解DNS服务安装篇
PHP安全配置
CODEPAGE 列表与asp应用例子
js select 标签选定项的值获取代码
mysql 日期和时间函数
jquery 得到当前页面高度和宽度的两个函数
最优清除浮动的方法
诊断数据库系统性能 Oracle中跟踪sql语句
js中几种去掉字串左右空格的方法
css浏览器不兼容原因分析及解决办法
AjaxControlToolKit 显示浏览者本地语言的方法
JavaScript 学习笔记(六)
asp.net 光棒效应实现代码
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 时间是贼,偷走一切 大地的主人 情人节表白语录 复变函数学习心得体会 有个性的自我介绍 监理员年度工作总结 悠悠师恩情难忘作文 小学三年级作文400字:八音钟的自述 2011年上半年某医院精神文明工作总结 小学五年级作文900字:我的第一次做饭经历 烟雨花残琴潇梦尽作文1400字 应该宽容范美忠 忆流年~随风 乱世烟火.那一世悲欢离合 爱护地球保护环境作文300字 我为他们而感动 心灵永远的港湾=[无奈与寂寞]( 夜宿山寺 姐姐为我撑起一片蓝天作文1000字 工商管理 自我鉴定 我的爱情又在何处安生? 中华魂_关于中华魂的作文 SARS病毒的自述作文600字 工作经费的申请书 外商投资企业变更登记申请书的结构 大二入党申请书1500字 药材采购合同 五月份保健品销售工作计划 父亲给我的三封信 闲侃郭敬明“当官”作文800字 理解真诚宽容作文200字 偏见,是把伤心的剑 一朵梅花 税收管理员工作体会范文 郑老师印象_关于描写语文老师的小学生作文450字 除夕夜,放烟花600字 初中初一作文650字:回忆我那美好的童年 游叹气沟 傲慢的背后 初中毕业感言100字 小学教科室副主任竞聘演讲稿 让快乐点缀时光作文1300字 以深化改革促进社会主义新农村建设汇报演讲 农保中心工作总结 财务工作三句半 笔算除法教学反思 人为什么活的累呢 法制教育心得体会怎么写最好 闹元宵作文50字 我的团委副书记竞聘演讲稿,促进广大团员青年对新技术、新知识的学习和掌握

Copyright © 2016 phpStudy |