php 模拟POST提交的2种方法
2016-09-24 10:55
555 查看
1.通过curl函数
2.通过fsockopen.
$post_data = array(); $post_data['clientname'] = "test08"; $post_data['clientpasswd'] = "test08"; $post_data['submit'] = "submit"; $url='http://xxx.xxx.xxx.xx/xx/xxx/top.php'; $o=""; foreach ($post_data as $k=>$v) { $o.= "$k=".urlencode($v)."&"; } $post_data=substr($o,0,-1); $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_URL,$url); //为了支持cookie curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); $result = curl_exec($ch);
2.通过fsockopen.
$URL=‘http://xxx.xxx.xxx.xx/xx/xxx/top.php'; $post_data['clientname'] = "test08"; $post_data['clientpasswd'] = "test08"; $post_data['submit'] = "ログイン"; $referrer=""; // parsing the given URL $URL_Info=parse_url($URL); // Building referrer if($referrer=="") // if not given use this script as referrer $referrer=$_SERVER["SCRIPT_URI"]; // making string from $data foreach($post_data as $key=>$value) $values[]="$key=".urlencode($value); $data_string=implode("&",$values); // Find out which port is needed - if not given use standard (=80) if(!isset($URL_Info["port"])) $URL_Info["port"]=80; // building POST-request: $request.="POST ".$URL_Info["path"]." HTTP/1.1\n"; $request.="Host: ".$URL_Info["host"]."\n"; $request.="Referer: $referrer\n"; $request.="Content-type: application/x-www-form-urlencoded\n"; $request.="Content-length: ".strlen($data_string)."\n"; $request.="Connection: close\n"; $request.="\n"; $request.=$data_string."\n"; $fp = fsockopen($URL_Info["host"],$URL_Info["port"]); fputs($fp, $request); while(!feof($fp)) { $result .= fgets($fp, 128); } fclose($fp);
相关文章推荐
- php的serialize序列化和json性能测试
- Zabbix2.4 升级到3.0
- php 通过网页的方式备份和还原mysql数据库
- PHP验证码类,简单安全的PHP验证码
- FTP/SFTP 文件传输协议
- PHP开发API接口及使用
- 好文章之——PHP系列(一)
- PHP Socket编程 之使用fsockopen()函数
- ZBlog PHP主题模板标签调用文档整理
- 第47篇 WebRTC及PHP研究(十)
- php getcwd与dirname(__FILE__)区别详解
- ubutu14.04下ftp服务器搭建
- Ajax和PHP正则表达式验证表单及验证码
- yii2.0上传
- laravel session用法
- laravel csrf使用以及禁用
- laravel 框架的文件上传
- 代码 laravel发邮件
- Yii 异常处理、事务回滚
- 和阿里云实现ftp传输