参考:
http_build_query方法解释:
- //通过curl模拟post的请求;
- function SendDataByCurl($url,$data=array()){
- //对空格进行转义
- $url = str_replace(' ','+',$url);
- $ch = curl_init();
- //设置选项,包括URL
- curl_setopt($ch, CURLOPT_URL, "$url");
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch,CURLOPT_TIMEOUT,3); //定义超时3秒钟
- // POST数据
- curl_setopt($ch, CURLOPT_POST, 1);
- // 把post的变量加上
- curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); //所需传的数组用http_bulid_query()函数处理一下,就ok了
- //执行并获取url地址的内容
- $output = curl_exec($ch);
- $errorCode = curl_errno($ch);
- //释放curl句柄
- curl_close($ch);
- if(0 !== $errorCode) {
- return false;
- }
- return $output;
- }
http_build_query()函数的作用是使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串。
写法格式:http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )
打个比方:$data = array("name"=>"callback" , "value"=>"test");
$rescult = http_build_query($data);
我们输出下$rescutl可以得到:
name=callback&value=test
这个有什么用呢,这是模拟http请求的,把得到的数据data通过函数URL-encode,一般是用在回调。
文章点评