全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

php利用fsockopen GET/POST提交表单及上传文件

php利用fsockopen GET/POST提交表单及上传文件,具体内容如下

1.GET

get.php

<?php 
$host = 'demo.fdipzone.com'; 
$port = 80; 
$errno = ''; 
$errstr = ''; 
$timeout = 30; 
$url = '/socket/getapi.php'; 
 
$param = array( 
  'name' => 'fdipzone', 
  'gender' => 'man' 
); 
 
$url = $url.'?'.http_build_query($param); 
 
// create connect 
$fp = fsockopen($host, $port, $errno, $errstr, $timeout); 
 
if(!$fp){ 
  return false; 
} 
 
// send request 
$out = "GET ${url} HTTP/1.1\r\n"; 
$out .= "Host: ${host}\r\n"; 
$out .= "Connection:close\r\n\r\n"; 
 
fputs($fp, $out); 
 
// get response 
$response = ''; 
while($row=fread($fp, 4096)){ 
  $response .= $row; 
} 
 
fclose($fp); 
 
$pos = strpos($response, "\r\n\r\n"); 
$response = substr($response, $pos+4); 
 
echo $response; 
?> 

getapi.php

<?php 
$name = $_GET['name']; 
$gender = $_GET['gender']; 
 
echo 'name='.$name.'<br>'; 
echo 'gender='.$gender; 
?> 

2.POST

post.php

<?php 
$host = 'demo.fdipzone.com'; 
$port = 80; 
$errno = ''; 
$errstr = ''; 
$timeout = 30; 
$url = '/socket/postapi.php'; 
 
$param = array( 
  'name' => 'fdipzone', 
  'gender' => 'man', 
  'photo' => file_get_contents('photo.jpg') 
); 
 
$data = http_build_query($param); 
 
// create connect 
$fp = fsockopen($host, $port, $errno, $errstr, $timeout); 
 
if(!$fp){ 
  return false; 
} 
 
// send request 
$out = "POST ${url} HTTP/1.1\r\n"; 
$out .= "Host:${host}\r\n"; 
$out .= "Content-type:application/x-www-form-urlencoded\r\n"; 
$out .= "Content-length:".strlen($data)."\r\n"; 
$out .= "Connection:close\r\n\r\n"; 
$out .= "${data}"; 
 
fputs($fp, $out); 
 
// get response 
$response = ''; 
while($row=fread($fp, 4096)){ 
  $response .= $row; 
} 
 
fclose($fp); 
 
$pos = strpos($response, "\r\n\r\n"); 
$response = substr($response, $pos+4); 
 
echo $response; 
?>

postapi.php

<?php 
define('UPLOAD_PATH', dirname(__FILE__).'/upload'); 
 
$name = $_POST['name']; 
$gender = $_POST['gender']; 
$photo = $_POST['photo']; 
 
$filename = time().'.jpg'; 
file_put_contents(UPLOAD_PATH.'/'.$filename, $photo, true); 
 
echo 'name='.$name.'<br>'; 
echo 'gender='.$gender.'<br>'; 
echo '<img src="upload/'.$filename.'">'; 
?> 

3.上传文件

file.php

<?php 
$host = 'demo.fdipzone.com'; 
$port = 80; 
$errno = ''; 
$errstr = ''; 
$timeout = 30; 
$url = '/socket/fileapi.php'; 
 
$form_data = array( 
  'name' => 'fdipzone', 
  'gender' => 'man', 
); 
 
$file_data = array( 
  array( 
    'name' => 'photo', 
    'filename' => 'photo.jpg', 
    'path' =>'photo.jpg' 
  ) 
); 
 
// create connect 
$fp = fsockopen($host, $port, $errno, $errstr, $timeout); 
 
if(!$fp){ 
  return false; 
} 
 
// send request 
srand((double)microtime()*1000000); 
$boundary = "---------------------------".substr(md5(rand(0,32000)),0,10); 
 
$data = "--$boundary\r\n"; 
 
// form data 
foreach($form_data as $key=>$val){ 
  $data .= "Content-Disposition: form-data; name=\"".$key."\"\r\n"; 
  $data .= "Content-type:text/plain\r\n\r\n"; 
  $data .= rawurlencode($val)."\r\n"; 
  $data .= "--$boundary\r\n"; 
} 
 
// file data 
foreach($file_data as $file){ 
  $data .= "Content-Disposition: form-data; name=\"".$file['name']."\"; filename=\"".$file['filename']."\"\r\n"; 
  $data .= "Content-Type: ".mime_content_type($file['path'])."\r\n\r\n"; 
  $data .= implode("",file($file['path']))."\r\n"; 
  $data .= "--$boundary\r\n"; 
} 
 
$data .="--\r\n\r\n"; 
 
$out = "POST ${url} HTTP/1.1\r\n"; 
$out .= "Host:${host}\r\n"; 
$out .= "Content-type:multipart/form-data; boundary=$boundary\r\n"; // multipart/form-data 
$out .= "Content-length:".strlen($data)."\r\n"; 
$out .= "Connection:close\r\n\r\n"; 
$out .= "${data}"; 
 
fputs($fp, $out); 
 
// get response 
$response = ''; 
while($row=fread($fp, 4096)){ 
  $response .= $row; 
} 
 
fclose($fp); 
 
$pos = strpos($response, "\r\n\r\n"); 
$response = substr($response, $pos+4); 
 
echo $response; 
?> 

fileapi.php

<?php 
define('UPLOAD_PATH', dirname(__FILE__).'/upload'); 
 
$name = $_POST['name']; 
$gender = $_POST['gender']; 
 
$filename = time().'.jpg'; 
 
echo 'name='.$name.'<br>'; 
echo 'gender='.$gender.'<br>'; 
if(move_uploaded_file($_FILES['photo']['tmp_name'], UPLOAD_PATH.'/'.$filename)){ 
  echo '<img src="upload/'.$filename.'">'; 
} 
?> 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# php  # fsockopen  # 表单  # 上传文件  # php实现表单提交上传文件功能  # JQuery打造PHP的AJAX表单提交实例  # php提交表单时判断 if($_POST[submit])与 if(isset($_POST[sub  # PHP 表单提交给自己  # PHP对表单提交特殊字符的过滤和处理方法汇总  # php不允许用户提交空表单(php空值判断)  # PHP防止表单重复提交的几种常用方法汇总  # php 多个submit提交表单 处理方法  # PHP如何通过表单直接提交大文件详解  # 具体内容  # 大家多多  # request  # send  # false  # HTTP  # Host  # return  # http_build_query  # man  # gender  # fp  # connect  # create  # strpos  # pos  # fclose  # _GET 


相关文章: C#如何在一个XML文件中查找并替换文本内容  如何在企业微信快速生成手机电脑官网?  如何在局域网内绑定自建网站域名?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  建站之星logo尺寸如何设置最合适?  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  如何在阿里云通过域名搭建网站?  建站OpenVZ教程与优化策略:配置指南与性能提升  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  如何通过NAT技术实现内网高效建站?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  香港网站服务器数量如何影响SEO优化效果?  高端云建站费用究竟需要多少预算?  C++如何使用std::optional?(处理可选值)  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  高端网站建设与定制开发一站式解决方案 中企动力  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  股票网站制作软件,网上股票怎么开户?  如何在万网主机上快速搭建网站?  如何高效生成建站之星成品网站源码?  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  建站之星后台管理如何实现高效配置?  独立制作一个网站多少钱,建立网站需要花多少钱?  python的本地网站制作,如何创建本地站点?  公司网站设计制作厂家,怎么创建自己的一个网站?  代刷网站制作软件,别人代刷火车票靠谱吗?  C++时间戳转换成日期时间的步骤和示例代码  jQuery 常见小例汇总  如何用VPS主机快速搭建个人网站?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  建站之星安装失败:服务器环境不兼容?  如何用5美元大硬盘VPS安全高效搭建个人网站?  详解jQuery停止动画——stop()方法的使用  网站制作说明怎么写,简述网页设计的流程并说明原因?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  高端建站三要素:定制模板、企业官网与响应式设计优化  建站之星安装后如何自定义网站颜色与字体?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  建站之星安装提示数据库无法连接如何解决?  如何通过wdcp面板快速创建网站?  如何在景安服务器上快速搭建个人网站?  贸易公司网站制作流程,出口贸易网站设计怎么做?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  XML的“混合内容”是什么 怎么用DTD或XSD定义  如何在宝塔面板中创建新站点?  建站之星如何快速更换网站模板?  广东企业建站网站优化与SEO营销核心策略指南  北京制作网站的公司,北京铁路集团官方网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。