使用php模拟post的几种方法
<?php
function file_get_contents_post($url,$post){
$options=array(
'http'=>array(
'method'=>'POST',
//'content'=>'name=caiknife&email=caiknife@gmail.com',
'content'=>http_build_query($post),
),
);
$result=file_get_contents($url,false,stream_context_create($options));
return$result;
}
$data=file_get_contents_post("http://www.a.com/post/post.php",array('name'=>'caiknife','email'=>'caiknife@gmail.com'));
function curl_post($url,$post){
$options=array(
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_HEADER=>false,
CURLOPT_POST=>true,
CURLOPT_POSTFIELDS=>$post,
);
$ch=curl_init($url);
curl_setopt_array($ch,$options);
$result=curl_exec($ch);
curl_close($ch);
return$result;
}
$data=curl_post("http://www.a.com/post/post.php",array('name'=>'caiknife','email'=>'caiknife@gmail.com'));
function socket_post($url,$post){
$urls=parse_url($url);
if(!isset($urls['port'])){
$urls['port']=80;
}
$fp=fsockopen($urls['host'],$urls['port'],$errno,$errstr);
if(!$fp){
echo"$errno,$errstr";
exit();
}
$post=http_build_query($post);
$length=strlen($post);
$header=<<<HEADER
POST{$urls['path']} HTTP/1.1
Host:{$urls['host']}
Content-Type:application/x-www-form-urlencoded
Content-Length:{$length}
Connection:close
{$post}
HEADER;
fwrite($fp,$header);
$result='';
while(!feof($fp)){
//receivetheresultsoftherequest
$result.=fread($fp,512);
}
$result=explode("\r\n\r\n",$result,2);
return$result[1];
}
$data=socket_post("http://www.a.com/post/post.php",array('name'=>'caiknife','email'=>'caiknife@gmail.com'));
?>
【源码最能说明问题,源码是csdn的一篇博文里的:http://blog.csdn.net/caiknife/article/details/8796505】
使用php模拟post的几种方法的更多相关文章
- Python模拟登录的几种方法
目录 方法一:直接使用已知的cookie访问 方法二:模拟登录后再携带得到的cookie访问 方法三:模拟登录后用session保持登录状态 方法四:使用无头浏览器访问 正文 方法一:直接使用已知的c ...
- scrapy模拟登陆的几种方法
方法一: 方法二: 方法三:
- ios中模拟延时的几种方法
- (void)delay1 { // 延迟执行不要用sleep,坏处:卡住当前线程 [NSThread sleepForTimeInterval:3]; NSLog(@&qu ...
- vue-cli中模拟数据的两种方法
我所使用的是新版vue-cli 首先进行所需插件的安装,vue-resource,json-server,proxyTable. 目录结构如图 在main.js中引入vue-resource模块,Vu ...
- VB模拟键盘输入的N种方法
VB模拟键盘输入的N种方法http://bbs.csdn.net/topics/90509805hd378发表于: 2006-12-24 14:35:39用VB模拟键盘事件的N种方法 键盘是我们使用计 ...
- php模拟登陆的两种实现方法分析
php模拟登陆的实现方法分析 本文实例分析了php模拟登陆的实现方法.分享给大家供大家参考.具体分析如下: php模拟登陆的实现方法,这里分别列举两种方法实现模拟登陆人人网.具体实例代码如下: 1)使 ...
- Chrome模拟手机浏览器(iOS/Android)的三种方法,亲测无误!
大网站都有推出自己的手机访问版本页面,不管是新闻类还是视频网站,我们在电脑是无法直接访问到手机网站的,比如我经常访问一个3g.qq.com这个手机站点,如果在电脑上直接打开它,则会跳转到其它页面,一般 ...
- Python中模拟enum枚举类型的5种方法分享
这篇文章主要介绍了Python中模拟enum枚举类型的5种方法分享,本文直接给出实现代码,需要的朋友可以参考下 以下几种方法来模拟enum:(感觉方法一简单实用) 复制代码代码如下: # way1 ...
- 使用javascript和css模拟帧动画的几种方法浅析
我们平时在开发前端页面的时候,经常会播放一段帧序列.这段帧序列就像gif图片那样,反复循环播放.那大家可能会说,直接用gif图片就好了,干嘛还去模拟呢?那是因为要做得更加灵活,我们要做到以下几点: 1 ...
随机推荐
- 为WordPress某个文章添加额外的样式
如需把css直接写在某文章,把下面代码放如function.php /* 为特定文章添加特定css最简单的方式. */ /*添加自定义CSS的meta box*/ add_action('admin_ ...
- sql server2008企业版和标准版
SQL Server 的企业版和标准版的License价格差5倍之多,在企业应用中,DBA 经常会被这个问题问住,本帖将日常工作实践中遇到到版本问题给出第一手资料,陆续补充…… SQL 2008 镜像 ...
- 20145211 《Java程序设计》实验报告三:敏捷开发与XP实践
实验内容 使用 git上传代码 使用 git相互更改代码 实现代码的重载 XP基础 XP核心实践 相关工具 一.git上传代码 这一部分是与我的partner合作的,详见他的博客- 20145326蔡 ...
- 【python】RGB图片到灰度图的转换
在做立体匹配求深度图的时候遇到这个问题,用惯了matlab的rgb2gray,倒是不熟悉python的实现,在网上找到了相关方案,记下来已作备用 RGB到灰度图转换公式: Y' = 0.299 R + ...
- 免费真机调试 -- Xcode7以上版本
刚新安装了Xcode7 , 据说这个版本可以免费真机调试,于是用了一个新的AppID测试了,发现真的可以免费真机调试了呢!新的appId账号(随便一个苹果手机账号就行),没有支付每年的99美刀,也没有 ...
- http://www.cnblogs.com/zhaoyang/archive/2012/01/07/2315436.html
http://www.cnblogs.com/zhaoyang/archive/2012/01/07/2315436.html
- python深复制和浅复制
深复制:一个更改后不会影响到其他的变量,另一个变量B赋值给变量A时,虽然A和B的内存空间仍然相同,但当A的值发生变化时,会重新给A分配空间,A和B的地址变得不再相同 浅复制:改变一个就会引起另一个的改 ...
- Android Service和Thread的关系
不少Android初学者都可能会有这样的疑惑,Service和Thread到底有什么关系呢?什么时候应该用Service,什么时候又应该用Thread?答案可能会有点让你吃惊,因为Service和Th ...
- python or not python
python or not python 我挺喜欢 python 这种编程语言,它本身的丰富的动态特性让这种语言的表达能力很强,基本上 python 上写的一行代码,可实现 java 上 1.5 到 ...
- mysql centeros 安装
http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html linux mysql允许远程连接 1.登录数据库:my ...