作用:创建并返回一个文本数据流并应用各种选项,可用于fopen(),file_get_contents()等过程的超时设置、代理服务器、请求方式、头信息设置的特殊过程。
函数原型:resource stream_context_create ([ array $options [, array $params ]] )用法
例子一:
复制代码代码如下:php
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.jb51.net with additional headers shown above */$fp = fopen('http://www.jb51.net', 'r', false, $context);fpassthru($fp);fclose($fp);?>
例子二:
复制代码代码如下:php
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
array('method'=>"GET",'header'=>array("Accept-language: en","Cookie: foo=bar","Custom-Header: value")));$context = stream_context_create($opts);?>
例子三:
复制代码代码如下:php
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
$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);?>
