PHP stream_context_create()作用和用法分析_php教程-查字典教程网
PHP stream_context_create()作用和用法分析
PHP stream_context_create()作用和用法分析
发布时间:2016-12-29 来源:查字典编辑
摘要:作用:创建并返回一个文本数据流并应用各种选项,可用于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: enrn" .

"Cookie: foo=barrn"

)

);

$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

$opts = array( 'http-->array(

'method'=>"GET",

'header'=>"Accept-language: enrn" .

"Cookie: foo=barrn"

)

);

$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 .= "--$boundaryn";

$data .= "Content-Disposition: form-data; name="".$key.""nn".$val."n";

}

$data .= "--$boundaryn";

//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/jpegn";

$data .= "Content-Transfer-Encoding: binarynn";

$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教程学习
    热门php教程学习
    编程开发子分类