使用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 ...
随机推荐
- [LeetCode]题解(python):046-Permutations
题目来源 https://leetcode.com/problems/permutations/ Given a collection of distinct numbers, return all ...
- Candies---hdu3159(spfa+差分约束)
题目链接:http://poj.org/problem?id=3159 题意:有n个小孩,m个关系格式是A B C 表示小孩 B 的糖果数最多比小孩A多C个,相当于B-A<=C; 有m个这样的关 ...
- hdu1241 Oil Deposits
Oil Deposits Time Limit: 2000/1000 MS (Java/Others) ...
- 获取网络状态ios(2G、3G、4G、Wifi)
+(NSString *)getNetWorkStates{UIApplication *app = [UIApplication sharedApplication];NSArray *childr ...
- iOS:访问地址薄
地址簿的访问 介绍: 地址簿(Address Book)是一个共享的联系人信息数据库.任何iOS应用程序都可以使用.通过提供常用联系人信息,而不是让每一个应用程序管理独立的联系人列表,可改善用户体验. ...
- 禁用LMHOSTS和NetBIOS后提升上网速度 ?
LMHOSTS 文件是 windows 中进行 netbios 静态解析时使用的,其作用类型于 HOSTS 文件. 今天发现这个东西有点问题,在用ADSL上网时,明明 IP . DNS 都设置得好好的 ...
- 阻止PHP彩蛋信息泄漏 [转]
Easter Eggs(复活节彩蛋)外行人估计不了解这是神木玩意,彩蛋的网络解释是:用于电脑.电子游戏.电脑游戏.影碟或其他互动多媒体之中的隐藏功能或信息.PHP包含一个安全漏洞,可能导致未经授权的信 ...
- RAID讲解
RAID定义 RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘, ...
- [PCL]1 PCL点云库安装
1.安装文件下载:官网,我还是比较喜欢别人编译好的安装包啊,哈哈. http://www.pointclouds.org/downloads/windows.html 2.傻瓜式安装(下面的依赖项都集 ...
- 将hadoop源代码导入eclipse
1. 安装JDK,eclipse,下载hadoop源代码并解压到某一个目录. 2. 安装maven,将bin目录添加到PATH环境变量中. 3. 安装protobuf2.5.0,将protoc-2.5 ...