- 浏览: 43862 次
文章分类
最新评论
php socket模拟http中post或者get提交数据的示例代码。
代码:
sock_post.php:
get_post.php:
代码:
sock_post.php:
<?php /** * php socket模拟post\get请求 * 编辑:脚本学堂 http://www.jbxue.com */ function sock_post($url, $data='') { $url = parse_url($url); $url['scheme'] || $url['scheme'] = 'http'; $url['host'] || $url['host'] = $_SERVER['HTTP_HOST']; $url['path'][0] != '/' && $url['path'] = '/'.$url['path']; $query = $data; if(is_array($data)) $query = http_build_query($data); $fp = @fsockopen($url['host'], $url['port'] ? $url['port'] : 80); if (!$fp) return "Failed to open socket to $url[host]"; fputs($fp, sprintf("POST %s%s%s HTTP/1.0/n", $url['path'], $url['query'] ? "?" : "", $url['query'])); fputs($fp, "Host: $url[host]/n"); fputs($fp, "Content-type: application/x-www-form-urlencoded/n"); fputs($fp, "Content-length: " . strlen($query) . "/n"); fputs($fp, "Connection: close/n/n"); fputs($fp, "$query/n"); $line = fgets($fp,1024); if (@!eregi("^HTTP/1/.. 200", $line)) return; $results = ""; $inheader = 1; while(!feof($fp)) { $line = fgets($fp,1024); if ($inheader && ($line == "/n" || $line == "/r/n")) { $inheader = 0; }elseif (!$inheader) { $results .= $line; } } fclose($fp); return $results; } $re = sock_post('http://localhost/direct_post/get_post.php?id=1',array('wel'=>'hello')); echo $re; ?>
get_post.php:
<?php echo "post:"; print_r($_POST); echo 'get:'; print_r($_GET); ?>
发表评论
-
php导出word格式数据的代码一例
2013-11-14 16:24 1154发布:thatboy 来源:脚本学堂 【 大 ... -
php生成word文档的代码
2013-11-07 11:51 1241一、用windows里面自带的com,然后用 php生成wo ... -
php 导出word(可包含图片)
2013-11-07 11:44 870发布:sunday01 来源:Net 今天 为大家介绍 ... -
PHP获取域名及域名IP的方法
2013-10-17 15:46 2412最近在做的一个项目用到获取域名和IP的功能,大致有以下几种方法 ... -
浅析php变量作用域的一些问题
2013-08-08 12:14 632学过C的人用php的时候一 ... -
下载站mime属性设置(让文件可下载)
2013-07-18 16:02 850一些下载网站为了支持更多的格式,一般情况下支持rar,zip等 ... -
PHP 数组和字符串互相转换的方法分享
2013-07-18 15:58 561PHP 具有两个函数,可以在字符串和数组之间互相进行转换。 ... -
php数组与字符串的转换函数整理汇总
2013-07-18 15:52 824对php中的数组与字符串的转换函数进行了详细的整理汇总。 1 ... -
php文件上传与下载的实例分享
2013-07-18 15:49 740分享有关php下载的相关文章。 先分享几个文件下载类: ph ... -
php设计模式之命令模式的应用举例
2013-05-21 22:50 511所谓,命令模式:将一个请求封装为一个对象,从而你可用不同的请求 ... -
php设计模式之观察者模式的应用示例
2013-05-21 22:47 598所谓,观察者模式:定义对象间一种一对多的依赖关系,当一个对象的 ... -
php生成随机密码的函数一例
2013-05-21 22:42 551生成随机密码的函数,可自定义密码长度。 <?php / ... -
php打印网页的代码举例
2013-05-02 23:17 1375本文出处参考:http://www.jbxue.com/art ... -
php iconv字符串编码转换(GBK到UTF8字符集)的方法与实例
2013-05-02 23:14 3687本文原始链接:http://www ... -
一个php ftp类(复制、移动、删除文件、创建目录等)
2013-05-01 05:06 784一个不错的ftp操作类,可以完成复制、移动、删除文件、创建目录 ... -
php get_headers 判断URL是否有效的方法
2013-05-01 05:02 1146使用php get_headers判断url的真实有效性。 还 ... -
PHPmailer 邮件群发的实例代码
2013-05-01 05:00 829本文出处参考:http://www.jbxue.com/art ... -
PHPMailer邮件类发送邮件举例(smtp.163.com)
2013-04-27 22:27 16841、下载PHPMailer文件包,PHPMailer邮件发送类 ... -
PHP 获取指定月对应天数的代码
2013-04-17 05:59 639<?php /** * 获取指定月对应的天数 * ... -
php计算时间差的简单例子
2013-04-17 05:57 579例子:计算借书的天数,根据每天的日期进行计算。 (1) 有数 ...
相关推荐
在PHP中,有时候我们需要模拟HTTP协议的POST或GET方法来发送数据到远程服务器,例如进行API调用或者与不支持curl扩展的服务器交互。本文将详细介绍如何使用PHP的socket功能来实现这一目标。 首先,我们要了解HTTP...
本文将深入探讨如何使用PHP的Socket编程来模拟HTTP的GET和POST请求。我们将从一个PHP类开始,该类能够构建HTTP请求并处理响应,此外还将分享代码示例,并讨论其它PHP模拟HTTP请求的方法。 首先,PHP中模拟HTTP请求...
POST用于提交数据,适用于更新或创建资源,数据隐藏在请求体中。 在PHP中,可以使用cURL库或者file_get_contents函数来实现HTTP请求。例如,使用cURL发送GET请求的代码如下: ```php $ch = curl_init(); curl_...
在PHP中,可以通过fsockopen函数创建一个socket连接来模拟POST请求。在示例代码中,我们看到`$ps`数组用于存储POST参数,然后通过`urlencode`函数编码键值对,并将它们添加到`$posts`字符串中。最后,使用`fputs`将...
描述中提到的“模拟get方式,直接用file_get_content就行了”,这是指在PHP中获取HTTP GET请求数据时,可以简单地使用file_get_contents函数,它会自动处理HTTP GET请求并返回响应内容。然而,对于POST请求,由于...
PHP POST数据的三种方法 php有三种方法可以post数据,分别为Curl、socket、file_get_contents:
在PHP编程中,有时我们需要模拟HTTP POST请求,例如在测试API接口、自动化脚本或进行数据传输时。本文将详细介绍四种在PHP中实现POST提交的方法。 1. **使用cURL库** cURL是一个用于传输数据的库,支持多种协议,...
利用PHP的fsockopen函数可以模拟向其他网页或站点发送HTTP请求,具体来说,可以通过模拟POST和GET方法来传送数据。下面详细说明如何使用fsockopen函数来完成这一任务。 首先,要理解fsockopen函数是PHP中用于打开...
以下介绍的三种方法——file_get_contents、curl和socket,都是PHP中实现模拟POST提交的有效手段。 1. **file_get_contents方法**: 这个函数通常用于读取远程文件,但通过设置HTTP选项,也可以实现POST提交。在...
GET请求 $ http = new HttpClient ();$ http -> set_header ( 'User-Agent' , 'Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1' ); $ http -> get ( 'http://www.example.com/' ); echo $ ...
但可以猜测,这可能包含了实现PHP Socket HTTP服务器的部分代码,或者是一些用于测试服务器功能的模拟数据。 总结,PHP Socket HTTP涉及了网络编程和HTTP协议的基础知识,通过创建和管理套接字,我们可以建立自定义...
下面将详细介绍fsocket类中包含的方法以及模拟GET和POST请求的具体实现。 首先,fsocket类的构造方法中初始化了几个私有函数,它们分别用于处理不同的任务: 1. _fsockopen函数用来初始化socket连接。它会尝试解析...