原来一直以为file_get_contents() 函数大概只能在请求一个url时做get操作,其实还有下面用法,可以让file_get_contents() 函数也做post:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php // 1. 通过设置context来是file_get_contents()函数完成post操作,其实还可以设置很多的东西 // 设置方法1 ================================================================ $opts = array( 'http'=>array( 'method'=>'POST', 'content'=>'a=b&c=d' ) ); $context = stream_context_create($opts); // 设置方法2 ================================================================ /** $context = stream_context_create(array()); // 参数必须是一个数组,允许是空数组 stream_context_set_option ($context,'http','method','POST'); // 第一个参数必须是一个stream或由stream_context_create产生的一个stream的上下文 stream_context_set_option ($context,'http','content','a=b&c=d&e=f'); */ // ================================================================================= echo file_get_contents('http://ljj.cn/test.php',false,$context); |
注意:这里设置了使用post方法,却没有设置Content-Type: application/x-www-form-urlencoded ;因为PHP给自动添加了该http头,如果没有该http头,则server端的PHP不会将post数据解析到$_POST数组中。