如何使用file_get_contents实现发送GET、POST请求

时间:2025-03-06 21:49:36

虽然说发送get、post请求可以使用curl,但是吧对于一个极小的项目却显得没那个必要了,curl代码量着实有点大了,虽然你可以放公共函数里,但是有些特殊场景下用不了公共函数,这个时候file_get_contents的便利性就凸显出来了,总之你可以不用但你不能不会,OK!开始教学

发送GET请求

$data = array( 'name'=>'李白','phone'=>'13000000000');//get请求params参数数组

$query = http_build_query($data);

$url = 'http://localhost/';//这里一定要写完整正确的API页面地址

$result = file_get_contents($url.'?'.$query);//拼接参数

可以看到如果你的URL地址固定只需要最后一句代码就可以,十分方便没有curl之类的繁琐

发送POST请求

$data = array('name'=>'李白','phone'=>'13000000000');//post请求body参数数组

$context = stream_context_create(['http' => ['method' => 'POST', 'header' => "Content-Type: application/json; charset=utf-8" , 'content' => json_encode($data)]]);

$response = file_get_contents('http://localhost/', false, $context);

post请求跟get请求很是类似,只是多了两个参数,第二个参数固定为false,第三个参数就是我们要post的数据和header头之类的数据,另外就是发送参数要转成json,这比curl要方便很多吧,在某些特殊场景用不了公共函数的时候,这个方法确实是个不错的选择就没有必要用curl了