使用php模拟post的几种方法

<?php
function file_get_contents_post($url,$post){
$options=array(
‘http‘=>array(
‘method‘=>‘POST‘,
//‘content‘=>‘name=caiknife&[email protected]‘,
‘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‘=>‘[email protected]‘));

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‘=>‘[email protected]‘));

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‘=>‘[email protected]‘));

?>

【源码最能说明问题,源码是csdn的一篇博文里的:http://blog.csdn.net/caiknife/article/details/8796505】

时间: 2024-09-29 08:00:06

使用php模拟post的几种方法的相关文章

lua中模拟“continue”的几种方法

使用repeat循环包住需要要continue跳过的代码,使用break跳出循环, 需要注意的是,lua中的repeat语句,在循环条件为真的时候退出 1 for i = 1, 10 do 2 repeat 3 if i%2 == 0 then 4 break 5 end 6 print(i) 7 break 8 until true 9 end 使用while循环包住需要continue跳过的代码, 使用break跳出循环 1 for i = 1, 10 do 2 while true do

scrapy模拟登陆的几种方法

方法一: 方法二: 方法三: 原文地址:https://www.cnblogs.com/lmx123/p/9248348.html

ios中模拟延时的几种方法

- (void)delay1 {     // 延迟执行不要用sleep,坏处:卡住当前线程     [NSThread sleepForTimeInterval:3];     NSLog(@"操作"); } - (void)delay2 {     // 一旦定制好延迟任务后,不会卡主当前线程     [self performSelector:@selector(download:) withObject:@"http://美女.jpg" afterDelay

python爬虫:两种方法模拟登录博客园

第一方法用第三方库(requests):参考http://www.mamicode.com/info-detail-1839685.html 源代码分析 博客园的登录页面非常简单,查看网页源代码,可以发现两个输入框的id分别为input1.input2,复选框的id为remember_me,登录按钮的id为signin. 还有一段JavaScript代码,下面来简单分析一下. 先来看$(function(){});函数: 1 $(function () { 2 $('#signin').bind

三种方法教你如何用PHP模拟post提交数据

php模拟post传值在日常的工作中用到的不是很多,但是在某些特定的场合还是经常用到的. 下面,我整理了三种php模拟post传值的方法,file_get_contents.curl和socket. ? 第一种:file_get_contents来模拟post ? <?php ? function file_get_contents_post($url, $post){ ? $options = array( 'http'=> array( 'method'=>'POST', 'cont

VB模拟键盘输入的N种方法

VB模拟键盘输入的N种方法http://bbs.csdn.net/topics/90509805hd378发表于: 2006-12-24 14:35:39用VB模拟键盘事件的N种方法 键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作.但是有时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是就有了用程序来代替人们按键的方法,这样可以把很多重复性的键盘操作交给程序来模拟,省了很多精力,按键精灵就是这样的一个软件.那么我们怎样才能用VB来写一个程

使用javascript和css模拟帧动画的几种方法浅析

我们平时在开发前端页面的时候,经常会播放一段帧序列.这段帧序列就像gif图片那样,反复循环播放.那大家可能会说,直接用gif图片就好了,干嘛还去模拟呢?那是因为要做得更加灵活,我们要做到以下几点: 1.我们希望这段帧动画只循环播放所指定的次数. 2.我们希望帧动画结束的瞬间执行某种操作.这个在游戏中大量存在. 3.我们想自如的控制播放的速度. 4.我们想尽可能让这个帧动画的实现方式兼容大部分浏览器,在移动和pc端都能运行良好. 有了以上四点要求,那就不是gif图片所能完成的了.下面,我们先探讨有

CURL模拟POST提交的二种方法实例

CURL应用广范,本文来介绍CURL模拟POST提交的二种方法实例,他们都是返回json字符串格式. 方法一(返回的是json字符串格式): /** * Curl版本 * 使用方法: * $post_string = "app=request&version=beta"; * request_by_curl('http://facebook.cn/restServer.php',$post_string); */ function actionPost($url,$data){

用Fiddler可以设置浏览器的UA 和 手动 --Chrome模拟手机浏览器(iOS/Android)的三种方法,亲测无误!

附加以一种软件的方法是:用Fiddler可以设置浏览器的UA 以下3种方法是手动的 通过伪装User-Agent,将浏览器模拟成Android设备. 第一种方法:新建Chrome快捷方式 右击桌面上的Chrome浏览器图标,在弹出的右键菜单中选择“复制”,复制一个图标副本到桌面.右击该副本,选择“属性”,打开相应的对话框,在“目标”文本框的字符后面添加以下语句:“--user-agent="Android"”,如下图: 注意user前面是两个“-”,并且“chrome.exe”与“--