温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP stream_context_create()的作用是什么

发布时间:2022-10-18 16:45:00 来源:亿速云 阅读:244 作者:iii 栏目:编程语言

这篇文章主要介绍“PHP stream_context_create()的作用是什么”,在日常操作中,相信很多人在PHP stream_context_create()的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP stream_context_create()的作用是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创建并返回一个文本数据流并应用各种选项,可用于fopen(),file_get_contents()等过程的超时设置、代理服务器、请求方式、头信息设置的特殊过程。

作用:创建并返回一个文本数据流并应用各种选项,可用于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);

 $fp = fopen('http://www.jb51.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.jb51.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.jb51.net", $postdata, $files);
 ?>

到此,关于“PHP stream_context_create()的作用是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI