PHP模拟post提交数据方法汇总
php  /  管理员 发布于 7年前   124
使用php模拟post传值虽然在日常生活中用到的不是很多,但是在某些场合还是经常用到的。下面AIDI小编给大家整理了三种php模拟post传值的方法,file_get_contents、curl和socket。 第一种:file_get_contents来模拟post 第二种:curl模拟post 第三种:socket来模拟post 上面这三种方法最后看到的内容都是一样的,都可以得到post的传值;但是在是用socket的时候,发送header信息时必须要注意header的完整信息,比如content type和content length必须要有,connection: close和post数据之间要空一行,等等;而通过socket取得的内容是包含了header信息的,要处理一下才能获得真正的内容。 下面给大家说下php模拟post提交请求,调用接口 这是方法, 下面是具体的调用案例。 这样就提交请求,并且获取请求结果了。一般返回的结果是json格式的。 这里的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();//初始化curlcurl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页curl_setopt($ch, CURLOPT_HEADER, 0);//设置headercurl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上curl_setopt($ch, CURLOPT_POST, 1);//post提交方式curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);$data = curl_exec($ch);//运行curlcurl_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'] = '[email protected]';$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);}
/*** 模拟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();//初始化curlcurl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页curl_setopt($ch, CURLOPT_HEADER, 0);//设置headercurl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上curl_setopt($ch, CURLOPT_POST, 1);//post提交方式curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);$data = curl_exec($ch);//运行curlcurl_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'] = '[email protected]';//$post_data = array();$res = $this->request_post($url, $post_data); print_r($res);}
您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号