php httpclient.class.php,php实现httpclient类示例

class httpClient {

public $buffer = null;  // buffer 获取返回的字符串

public $referer = null;  // referer 设置 HTTP_REFERER 的网址

public $response = null; // response 服务器响应的 header 信息

public $request = null;  // request 发送到服务器的 header 信息

private $args = null;

public static function init(&$instanceof, $args = array()) {

return $instanceof = new self($args);

}

private function __construct($args = array()) {

if(!is_array($args)) $args = array();

$this->args = $args;

if(!empty($this->args[debugging])) {

ob_end_clean();

set_time_limit(0);

header(Content-Type: text/plain; charset=utf-8);

}

}

public function get($url, $data = null, $cookie = null) {

$parse = parse_url($url);

$url .= isset($parse[query]) ? &. $data : ( $data ? ?. $data : );

$host = $parse[host];

$header  = Host: . $host. "\r\n";

$header .= Connection: close. "\r\n";

$header .= Accept: */*. "\r\n";

$header .= User-Agent: . ( isset($this->args[userAgent]) ? $this->args[userAgent] : $_SERVER[HTTP_USER_AGENT] ). "\r\n";

$header .= DNT: 1. "\r\n";

if($cookie) $header .= Cookie: . $cookie. "\r\n";

if($this->referer) $header .= Referer: . $this->referer. "\r\n";

$options = array();

$options[http][method] = GET;

$options[http][header] = $header;

$response = get_headers($url);

$this->request = $header;

$this->response = implode("\r\n", $response);

$context = stream_context_create($options);

return $this->buffer = file_get_contents($url, false, $context);

}

public function post($url, $data = null, $cookie = null) {

$parse = parse_url($url);

$host = $parse[host];

$header  = Host: . $host. "\r\n";

$header .= Connection: close. "\r\n";

$header .= Accept: */*. "\r\n";

$header .= User-Agent: . ( isset($this->args[userAgent]) ? $this->args[userAgent] : $_SERVER[HTTP_USER_AGENT] ). "\r\n";

$header .= Content-Type: application/x-www-form-urlencoded. "\r\n";

$header .= DNT: 1. "\r\n";

if($cookie) $header .= Cookie: . $cookie. "\r\n";

if($this->referer) $header .= Referer: . $this->referer. "\r\n";

if($data) $header .= Content-Length: . strlen($data). "\r\n";

$options = array();

$options[http][method] = POST;

$options[http][header] = $header;

if($data) $options[http][content] = $data;

$response = get_headers($url);

$this->request = $header;

$this->response = implode("\r\n", $response);

$context = stream_context_create($options);

return $this->buffer = file_get_contents($url, false, $context);

}

}

httpClient::init($httpClient, array( debugging => true , userAgent => MSIE 15.0 ));

$httpClient->get(http://www.baidu.com, name=haowei);

echo $httpClient->request; // 获取 请求头部信息

echo $httpClient->response; // 获取 响应的头部信息

echo $httpClient->buffer; // 获取 网页内容

$httpClient->get(http://www.jb51.net/ServiceLogin/, hash=. $time, uid=1;users=admin;)

echo $httpClient->buffer;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大学php老师,php高校教师总结计划系统

通过使用本系统,可以规范工作流程,提高办公效率,增强团队协同工作能力,实现科学的公文处理、事物管理、会议安排和人力管理,量化运营资源,预防管理真空,降低运行成本。还可以实现便利的信息发布…

好用的php空间,推荐国内三个优质的免费PHP空间

1.亿家免费国内PHP空间这是我见过最好的免费国内PHP空间了,这个BLOG就是由他的空间支撑的,所以你看到我这个空间的稳定,快速就代表着他们空间的优质了,推荐注册地址:www.e9china.net这个先要在他们论坛上发帖子&#x…

java处理脏数据,Java程序的脏数据问题

脏数据(Out-of-date data),指过时的数据。假如在您的java程序中存在脏数据,将或多或少地给软件系统带来一些问题,如:无法实时地应用已经发生改变的配置,软件系统出现一些莫名其妙的、难以重现的、后果严重的错误等等。…

制作自己的 Docker 容器

软件开发最大的麻烦事之一,就是环境配置。用户必须保证操作系统的设置,各种库和组件的安装,只有它们都正确,软件才能运行。docker从根本上解决问题,软件安装的时候,把原始环境一模一样地复制过来。 以 koa-…

notepad php源码,GitHub - CharlesKiki/Web-Notepad: 这是一个仿制有道云笔记的原生PHP小玩具。...

What is this?一个仿制笔记的Web应用。但是重点在于“重构”的乐趣。特点简言之,不使用框架就以原生的语言来开发一个网站,最大的好处就是最实现方法的理解会加深。但是不适用框架也意味着重复和冗余,这也导致了项目阅读时的阅读思路。设计稿…

matlab机械手ikine函数,关于Mtalab-robotics工具箱中的fkine和ikine两个函数的问题讨论!...

clear;clc;L1 Link([-pi/2 0 0 0 0],standard);L2 Link([0 10 0 -pi/2 0],standard);L3 Link([0 9.5 0 0 0],standard);L4 Link([-pi/2 3.2 -pi/2 0 0],standard);L5 Link([0 0 0 14.5 0],standard);r SerialLink([L1 L2 L3 L4 L5]);%r.name 5R工业机械臂-上电姿态;q […

matlab差分算子的灰度图像边缘检测,常用图像边缘检测方法及MATLAB研究

论文2 1年 2月 I 01 5日现代电子技术M o e n El c r i sT e h qu d r e ton c c ni e第3 4卷第 4期Fe .2 11 b 0 Vo1 3 . . 4 NO 4常用图像边缘检测方法及 Malb研究 t a韦炜(安文理学院,陕西西安西 706 ) 1 0 5({№吨~一~一一一三一一垂”. ; _堇;~~ _一…

mysql客户端重置密码是多少,mysql重置root密码

你可以按照以下简单的五步来重置/etc/init.d/mysql stop输出:Stopping MySQL database server: mysqld./usr/bin/mysqld_safe --skip-grant-tables &输出:[1] 5988Starting mysqld daemon with databases from /var/lib/mysqlmysqld_safe[6025]: sta…

go为什么比php性能好,刚学 GO,撸了个支付宝发券的程序,为什么性能还比不上 PHP ?...

下面是主程代码,这是详细代码func main() {//解析参数filePath : flag.String("f", "", "文件路径")tplId : flag.String("t", "", "模版 ID")flag.Parse()//解析密钥pk, err : ParsePrivateKey()chec…

php %3c%3c%3cxml 报错,代码审计| APPCMS SQL-XSS-CSRF-SHELL

0x01 背景由若水师傅提供的一个素材,想要复现CNVD上披露的一个APPCMS的漏洞,由CNVD上的描述可以知道存在漏洞的地方是comment.php这个文件,然后就没有详细的漏洞信息了,所以就需要分析相应的源码文件找出存在漏洞的点。借这个素材…

php二进制保存到本地,C# 将二进制字符串保存到本地

C# 将二进制字符串保存到本地#region 将文件保存到本地/// /// 将文件保存到本地/// /// 文件的二进制数据字符串/// 文件名称,必须带后缀private void SaveFile(string psContent, string psFileName){byte[] accessory Convert.FromBase64String(psContent);//Sy…

suse 安装oracle11,Suse11安装Oracle11gR2

注:以下采用终端XmanagerEnterprise 4中的Xshell连接1、安装前参数修改vi /etc/security/limits.conf --末尾添加如下oracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536vi /etc/sysctl.conf --末尾添加如…

oracle安装缺少,安装oracle11g R2 缺少依赖包

最近我在RHEL6.1上安装oracle11gR2时总是碰见如题说示的错误,在网上查了很多资料但都未能解决。网上都说是gcc版本问题或者gcc的包没有装全,但没有给出正确的gcc安装方法。这里转载别人的安装gcc的rpm包的顺序及方法,供各位参考:转…

PHP7数字三角形代码,倒数字三角

摘要&#xff1a;描述 Description以下的数字倒直角三角形是由二个数确定的&#xff1a;一个数是行数R&#xff0c;1<R<39&#xff0c;另一个是种子数S,1<S<9。S放在左上角&#xff0c;照着样例输出文件的样子&#xff0c;写一个程序&#xff0c;根据输入的二个数打…

oracle 超市管理系统,SuperManager 超市账单管理系统 JSP + Servlet + Oracle Jsp/ 240万源代码下载- www.pudn.com...

文件名称: SuperManager下载 收藏√ [5 4 3 2 1 ]开发工具: Java文件大小: 2144 KB上传时间: 2015-07-07下载次数: 0详细说明&#xff1a;超市账单管理系统JSP Servlet Oracle-超市账单管理系统JSP Servlet Oracle文件列表(点击判断是否您需要的文件&#xff0c;如果是…

oracle组合数据类型,oracle复合数据类型-相关方法

oracle提供了一些内置的函数和方法来操作复合数据类型。一、count 返回集合中的元素的个数declaretype ename_table_type is table of varchar2(20) index by binary_integer ;ename_table ename_table_type ;beginfor i in 1..5 loopename_table(i):a||i ;end loop ;dbms_outp…

hibernate native oracle,hibernate native 主键生成策略

前一次做个系统用的oracle数据库&#xff0c;使用hibernate生成主键的策略是SEQUENCE,当时觉得很累&#xff0c;因为不知道怎么的&#xff0c;oraclesequencetrigger怎么也取不到新增数据时的主键值。这次就把重点放这里了&#xff0c;同时还有两个新的问题&#xff0c;1。到底…

export Oracle_sid =asm,单实例下oracle数据库从文件系统迁移到ASM上

第一步&#xff1a;启动ASM实例(ASM)[oracleoracle ~]$ export ORACLE_SIDASM[oracleoracle ~]$ sqlplus / as sysdbaSQL*Plus: Release 10.2.0.5.0 - Production on Tue Jan 18 13:25:46 2011Copyright (c) 1982, 2010, Oracle. All Rights Reserved.Connected to:Oracle Dat…

linux命令行的操作符,如何在Linux命令行中进行基本的数学运算

原标题&#xff1a;如何在Linux命令行中进行基本的数学运算Linux bash或命令行允许您执行基本和复杂的算术和布尔运算。像expr&#xff0c;jot&#xff0c;bc和factor等命令可以帮助您找到复杂问题的最优数学解决方案。在本文中&#xff0c;我们将描述这些命令并提供示例&#…

在linux关闭的命令,关于关闭Linux计算机的命令操作

关于关闭Linux计算机的命令操作shutdown -h now 立即关机shutdown -r now 立即重启Linux命令&#xff1a;shutdown功能说明&#xff1a;系统关机指令。语法&#xff1a;shutdown [-efFhknr][-t 秒数][时间][警告信息]补充说明&#xff1a;shutdown指令可以关闭所有程序&#xf…