<?php
function sendpost($url, $data){
//先解析url
$url = parse_url($url);
$url_port = !isset($url['port']) ? (($url['scheme'] == 'http') ? 80 : 443) : $url['port'];
if (!$url)
{
return "couldn't parse url";
}
//将参数拼成URL key1=value1&key2=value2 的形式
$encoded = "";
while (list($k, $v) = each($data))
{
$encoded .= ($encoded ? '&' : '');
$encoded .= rawurlencode($k)."=".rawurlencode($v);
}
$len = strlen($encoded);
//拼上http头
$out = "POST ".$url['path'].(isset($url['query']) ? ('?'.$url['query']) : '')." HTTP/1.1\r\n";
$out .= "Host:".$url['host']."\r\n";
$out .= "Content-type: application/x-www-form-urlencoded\r\n";
$out .= "Connection: Close\r\n";
$out .= "Content-Length: $len\r\n";
$out .= "\r\n";
$out .= $encoded."\r\n";
//打开一个sock
$fp = @fsockopen($url['host'], $url_port);
$line = "";
if(!$fp){
echo "$errstr($errno)\n";
}else{
fwrite($fp,$out);
while (!feof($fp))
{
$line .= fgets($fp, 2048);
}
}
//去掉头文件
if ($line)
{
$body = stristr($line, "\r\n\r\n");
$body =substr($body, 4, strlen($body));
$line = $body;
}
fclose($fp);
return $line;
}
$arrVal["eee"] = "Hello";
$arrVal["ee"] = "Sorry";
echo sendpost("http://localhost/test.php",$arrVal);
?>
post.php 的内容
<?php
while(list($k,$v) = each($HTTP_POST_VARS)){
echo "<h1>".$k."=".$v."<h1><br />";
}
?>
function sendpost($url, $data,$sendType='POST'){
//先解析url
$url = parse_url($url);
$url_port = !isset($url['port']) ? (($url['scheme'] == 'http') ? 80 : 443) : $url['port'];
if (!$url)
{
return "couldn't parse url";
}
//将参数拼成URL key1=value1&key2=value2 的形式
$encoded = "";
while (list($k, $v) = each($data))
{
$encoded .= ($encoded ? '&' : '');
$encoded .= rawurlencode($k)."=".rawurlencode($v);
}
$len = strlen($encoded);
//拼上http头
$out = "{$sendType} ".$url['path'].(isset($url['query']) ? ('?'.$url['query']) : '')." HTTP/1.1\r\n";
$out .= "Host:".$url['host']."\r\n";
$out .= "Content-type: application/x-www-form-urlencoded\r\n";
$out .= "Connection: Close\r\n";
$out .= "Content-Length: $len\r\n";
$out .= "\r\n";
$out .= $encoded."\r\n";
//打开一个sock
$fp = @fsockopen($url['host'], $url_port);
$line = "";
if(!$fp){
echo "$errstr($errno)\n";
}else{
fwrite($fp,$out);
while (!feof($fp))
{
$line .= fgets($fp, 2048);
}
}
//去掉头文件
if ($line)
{
$body = stristr($line, "\r\n\r\n");
$body =substr($body, 4, strlen($body));
$line = $body;
}
fclose($fp);
return $line;
}
此文章来自网上,仅供参考
分享到:
相关推荐
fsockopen get/post 表单及上传文件例子。
本文实例讲述了php使用fsockopen函数发送post,get请求获取网页内容的方法。分享给大家供大家参考。 具体实现代码如下: 复制代码 代码如下:$post =1; $url = parse_url($url); $host =’//www.jb51.net’; $path ...
使用php可以模拟post和get传送数据到别的网页或者是站点,那么怎么传送数据呢?下面由小编给大家介绍利用PHP fsockopen 模拟POST/GET传送数据的方法,需要的朋友一起看看吧
fsockopen 伪造 post和get方法哦,如果你正在找 伪造 post和get方法的php处理代码这款不错哦。复制代码 代码如下:<?php//fsocket模拟post提交$purl = “http://localhost/netphp/test2.php?uu=rrrrrrrrrrrr”;...
fsockopen用法.txt
fsockopen函数能够运用,首先要开启php.ini中的allow_url_open=on;fsockopen是对socket客户端代码的封装,该函数中封装了socket_create,socket_connect。服务器端代码:server.php复制代码 代码如下:<?...
php利用fsockopen GET/POST提交表单及上传文件,具体内容如下 1.GET get.php <?php $host = 'demo.fdipzone.com'; $port = 80; $errno = ''; $errstr = ''; $timeout = 30; $url = '/socket/getapi.php'; $...
全面的基于fsockopen的HTTP请求功能,支持GET、POST、POST with file、raw POST、POST with指定IP等。 post_to_host.php 用 fsockopen 替换 curl: 变量前缀解释: 'arr' means any array, such as: array('var1...
最近要用到通过post上传文件,网上盛传的有curl的post提交和fsockopen,其中curl最简单,于是从最简单的说起。 这是简单的将一个变量post到另外一个页面 $url = ''; $data = array('a'=> 'b'); $ch = curl_init(); ...
1、修改php.ini,将 disable_functions = 后加入 fsockopen 2、修改php.ini,将 allow_url_fopen = On 改为 allow_url_fopen = Off 二、如何解决fsockopen函数被禁用1、如果服务器没有同时禁用pfsockopen,那么直接...
本文实例讲述了php基于fsockopen与curl实现自动提交表单的方法。分享给大家供大家参考,具体如下: ...*作者:果冻 说明:post($url, $data) * * $url = 'http://www.xxx.com:8080/login.php'; * $data[user]
主要介绍了php中fsockopen用法,实例分析了fsockopen的创建、写入及关闭等具体流程,需要的朋友可以参考下
$ composer require yakeing/php_fsockopen 初始化参数 样本: $ fs = new fsockopen(); $ ret = $ fs -> init ( 10 , //Running time / sec (optional) tcp, //transport protocol (opti
主要介绍了php源码 fsockopen获取网页内容实例详解的相关资料,需要的朋友可以参考下
发布一个用PHP fsockopen写的HTTP下载的类
有没有办法在php中实现多线程呢?假设你正在写一个基于多台服务器的php应用,理想的情况时同时向多台服务器发送请求,而不是一台接一台。可以实现吗?回答是当然可以,下面看解决方法