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 交通频道 作文范文 这个世界上从来就没有“感同身受” 年轻人认准目标就要狂热追求 特别的爱450字 人生的姿态 小学生新年新希望作文100字 我许你一世承诺,你给我恰好的温柔 遗憾作文1100字 痴情女人 一堂有趣的数学活动课作文700字 县政府实践科学发展观调查报告 小学四年级作文400字:团结心 我在路边学到了语文作文400字 一只爹一只娘作文200字 雾雨 《鬼故事之(误入旅店)》偷情的都没好结果!! 企业实习心得体会怎么写 《永...远...爱...你》四首 《笔随心境》作文1100字 小学三年级作文1000字:龙父龙子 初一作文750字:享受不定的乐趣 小学四年级作文500字:铅笔和桌子 生活是美丽的作文600字 波尔奇遇记 小侦探报告书作文300字 春色迷人 时间又远了一步作文1400字 小学五年级作文550字:【原创】小熊贝贝和小猴跳跳的故事《童话》 学琴路上苦与乐作文500字 别人说真性情怎么回复 绘友作文 瓦解 数学老师欠的“债” 让孤独的心无处躲藏 我心中的秘密作文800字 浅谈新形势下城管执法工作 草木的记忆 江南雨烟如倾墨作文450字 西南抗旱节水工作演讲稿 我爱你——侨声 2016年学校工作计划范文 妞,感谢你陪我的这一段 一路陪伴 向国旗敬礼活动策划书 静夜如花 检察机关的关心下一代工作先进事迹材料 浅谈如何做好新形势下的公安 小学五年级作文650字:在世博 90后伤感QQ说说:谢谢迩、让俄知道自己的不堪 2010年销售工作心得 让员工做CEO

Copyright © 2016 phpStudy |