PHP实用函数手册:stream_context_create()模拟POST/GET
PHP实用函数手册:stream_context_create()模拟POST/GET
有时候,我们需要在服务器端模拟 POST/GET 等请求,也就是在 PHP 程序中去实现模拟,改怎么做到呢?或者说,在 PHP 程序里,给你一个数组,如何将这个数组 POST/GET 到另外一个地址呢?当然,使用 CURL 很容易办到,那么如果不使用 CURL 库,又该怎么办呢?其实,在 PHP 里已经有相关的函数实现了,这个函数就是接下来要讲的 stream_context_create()。
直接 show you the code,这是最好的方法:
$data = array( 'foo'=>'bar', 'baz'=>'boom', 'site'=>'www.lai18.com', 'name'=>'lai18'); $data = http_build_query($data); //$postdata = http_build_query($data);$options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type:application/x-www-form-urlencoded', 'content' => $data //'timeout' => 60 * 60 // 超时时间(单位:s) ));$url = "http://www.lai18.net/";$context = stream_context_create($options);$result = file_get_contents($url, false, $context);echo $result;
http://www.lai18.com 的代码为:
$data = $_POST;echo '<pre class="brush:php;toolbar:false">';print_r( $data );echo '
运行结果为:
Array( [foo] => bar [baz] => boom [site] => www.lai18.com [name] => lai18)
一些要点讲解(参考:http://www.lai18.com/content/425476.html):
1. 以上程序用到了 http_build_query() 函数,如果需要了解,可以参看 stream),也可用于文件系统(file system)。对于像 file_get_contents、file_put_contents、readfile直接使用文件名操作而没有文件句柄的函数来说更有用。stream_context_create增加header头只是一部份功能,还可以定义代理、超时等。这使得访问web的功能不弱于curl。
4. stream_context_create() 作用:创建并返回一个文本数据流并应用各种选项,可用于fopen(),file_get_contents()等过程的超时设置、代理服务器、请求方式、头信息设置的特殊过程。
5. stream_context_create 还能通过增加 timeout 选项解决file_get_contents超时处理:
$opts = array( 'http'=>array( 'method'=>"GET", 'timeout'=>60, ));//创建数据流上下文$context = stream_context_create($opts);$html =file_get_contents('http://www.lai18.com', false, $context);//fopen输出文件指针处的所有剩余数据://fpassthru($fp); //fclose()前使用
延伸阅读
此文章所在专题列表如下:
1PHP函数补完:get_magic_quotes_gpc()
2PHP函数补完:error_reporting()
3PHP函数补完:array_splice()
4PHP函数补完:isset()
5PHP函数补完:array_multisort()
6PHP函数补完:urlencode()
7PHP函数补完:preg_match()
8PHP函数补完:header()
9PHP函数补完:getenv()
10PHP函数补完:list()
11PHP函数补完:mysql_num_rows()
12PHP函数补完:explode()
13PHP函数补完:mysql_fetch_array()
14PHP函数补完:number_format()
15PHP函数补完:mysql_query()
16PHP函数补完:empty()
17PHP函数补完:call_user_func()
18PHP函数补完:parse_url()
19PHP函数补完:import_request_variables()
20PHP函数补完:ImageCopyResamples()
21PHP函数补完:移除HTML标签strip_tags()
22PHP函数补完:输出数组结构与内容var_dump()
23PHP函数补完:var_export()
24PHP函数补完:判断变量是否为数字is_numeric()
25PHP函数补完:http_build_query()构造URL字符串
26PHP实用函数手册:stream_context_create()模拟POST/GET
27PHP函数补完:shuffle()取数组若干个随机元素
28PHP函数补完:session_id()
29PHP函数补完:nl2br()与nl2p()函数
30PHP函数补完:session_name()
31php计划任务之ignore_user_abort函数实现方法
32PHP中error_log()函数的使用方法
33PHP实用函数-array_change_key_case()将数组的键转换大小写
34PHP实用函数-function_exists()检测函数是否已定义
35PHP实用函数-array_intersect()计算两个或多个数组的交集
36PHP实用函数-array_diff()计算数组间的差集
37PHP实用函数-compact()将已知变量转换成数组
38PHP实用函数-extract()将数组转换成对应键值对变量
39PHP实用函数-array_count_values()统计数组中元素出现的次数
40PHP实用函数-getopt()从命令行参数列表中获取选项
41PHP实用函数 String函数分类
42使用PHP自带的filter函数进行数据校验

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Laravel memudahkan mengendalikan data sesi sementara menggunakan kaedah flash intuitifnya. Ini sesuai untuk memaparkan mesej ringkas, makluman, atau pemberitahuan dalam permohonan anda. Data hanya berterusan untuk permintaan seterusnya secara lalai: $ permintaan-

Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

Alipay Php ...

Laravel menyediakan sintaks simulasi respons HTTP ringkas, memudahkan ujian interaksi HTTP. Pendekatan ini dengan ketara mengurangkan redundansi kod semasa membuat simulasi ujian anda lebih intuitif. Pelaksanaan asas menyediakan pelbagai jenis pintasan jenis tindak balas: Gunakan Illuminate \ Support \ Facades \ http; Http :: palsu ([ 'Google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Adakah anda ingin memberikan penyelesaian segera, segera kepada masalah yang paling mendesak pelanggan anda? Sembang langsung membolehkan anda mempunyai perbualan masa nyata dengan pelanggan dan menyelesaikan masalah mereka dengan serta-merta. Ia membolehkan anda memberikan perkhidmatan yang lebih pantas kepada adat anda

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Artikel ini membincangkan menambah fungsi khusus kepada kerangka kerja, memberi tumpuan kepada pemahaman seni bina, mengenal pasti titik lanjutan, dan amalan terbaik untuk integrasi dan debugging.

Artikel membincangkan ciri -ciri keselamatan penting dalam rangka kerja untuk melindungi daripada kelemahan, termasuk pengesahan input, pengesahan, dan kemas kini tetap.
