php通过CURL模拟post提交请求
/** * 模拟post进行url请求 * @param string $url * @param string $param */ function request_post($url = \'\', $param = \'\') { if (empty($url) || empty($param)) { return false; } $postUrl = $url; $curlPost = $param; $ch = curl_init();//初始化curl curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页 curl_setopt($ch, CURLOPT_HEADER, 0);//设置header curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上 curl_setopt($ch, CURLOPT_POST, 1);//post提交方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); $data = curl_exec($ch);//运行curl curl_close($ch); return $data; }
下面是具体的调用案例。
function testAction(){ $url = \'http://mobile.jschina.com.cn/jschina/register.php\'; $post_data[\'appid\'] = \'10\'; $post_data[\'appkey\'] = \'cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ\'; $post_data[\'member_name\'] = \'zsjs123\'; $post_data[\'password\'] = \'123456\'; $post_data[\'email\'] = \'zsjs123@126.com\'; $o = ""; foreach ( $post_data as $k => $v ) { $o.= "$k=" . urlencode( $v ). "&" ; } $post_data = substr($o,0,-1); $res = $this->request_post($url, $post_data); print_r($res); }
这样就提交请求,并且获取请求结果了。
一般返回的结果是json格式的。
第二种方式:
/** * 模拟post进行url请求 * @param string $url * @param array $post_data */ function request_post($url = \'\', $post_data = array()) { if (empty($url) || empty($post_data)) { return false; } $o = ""; foreach ( $post_data as $k => $v ) { $o.= "$k=" . urlencode( $v ). "&" ; } $post_data = substr($o,0,-1); $postUrl = $url; $curlPost = $post_data; $ch = curl_init();//初始化curl curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页 curl_setopt($ch, CURLOPT_HEADER, 0);//设置header curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上 curl_setopt($ch, CURLOPT_POST, 1);//post提交方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); $data = curl_exec($ch);//运行curl curl_close($ch); return $data; }
将拼接也封装了起来,这样调用的时候就更简洁了。
function testAction(){ $url = \'http://mobile.jschina.com.cn/jschina/register.php\'; $post_data[\'appid\'] = \'10\'; $post_data[\'appkey\'] = \'cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ\'; $post_data[\'member_name\'] = \'zsjs124\'; $post_data[\'password\'] = \'123456\'; $post_data[\'email\'] = \'zsjs124@126.com\'; //$post_data = array(); $res = $this->request_post($url, $post_data); print_r($res); }
版权声明:本文为ps-blog原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。