php远程连接http方式
以下这三者是通过GET方式来获取数据
1、socket 方式
一般是指定网址、端口号、超时时间。
再对报头进行修改以及传递参数,包括:header、method、content,
返回的内容包括header报头。
python的httplib库,php的fsockopen的实现方式与此相同。
$dhost = "wx.upsmate.com";
$dport = 80;
$params = "/cgi-bin/getuserlistpage/?access_token=V_5305328e3e107bd2893666052ea16437"; $fp = fsockopen($dhost, $dport, $errno, $errstr, 5);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET $params HTTP/1.1\r\n";
$out .= "Host: $dhost\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out);
$response_data = "";
while (!feof($fp)) {
$response_data .= fgets($fp, 128);
}
// echo substr($response_data, strpos($response_data,"\r\n\r\n")+4);
echo $response_data; $fp1 = fopen("tmp1.php","w");
fwrite($fp1, $response_data);
fclose($fp1); fclose($fp);
}
2、文件流方式
fopen、file_get_contents这两种方式,两者最主要的区别在于:fopen可以一行行读取,而file_get_contents是一次性获取全部内容到一个字符串内。
两者都可以使用stream_context_create()创建资源流。而资源流的作用是:超时设置、代理服务器、请求方式、头信息设置这四个方面。
$opts = array(
'http'=>array(
'method'=>"GET",
'timeout'=>5,
)
); $context = stream_context_create($opts); $url = "http://wx.upsmate.com/cgi-bin/getuserlistpage/?access_token=V_5305328e3e107bd2893666052ea16437"; $context = file_get_contents($url,false,$context);
echo $context;
fopen方式:
<?php
$timeout = array(
'http' => array(
'timeout' => 5 //设置一个超时时间,单位为秒
)
);
$ctx = stream_context_create($timeout);
if ($fp = fopen("http://example.com/", "r", false, $ctx)) { $data = "";
while(!feof($fp)) {
$data .= fread($fp,4196);
}
fclose($fp);
}
?>
file_get_contents post数据样例:
<?
$data = array("name" => 'tim',"content" => 'test');
$data = http_build_query($data);
$opts = array(
'http'=>array(
'method'=>"POST",
'header'=>"Content-type: application/x-www-form-urlencoded\r\n".
"Content-length:".strlen($data)."\r\n" .
"Cookie: foo=bar\r\n" .
"\r\n",
'content' => $data,
)
);
$cxContext = stream_context_create($opts);
$sFile = file_get_contents("http://localhost/response.php", false, $cxContext); echo $sFile; ?>
参考网址:http://blog.csdn.net/heiyeshuwu/article/details/7841366
php远程连接http方式的更多相关文章
- mysql 8.0.13开启远程连接 配置方式
1:linux登录mysql [root@localhost mysql]# mysql -u root -p Enter password: Welcome to the MySQL monitor ...
- c# Oracle 远程连接方式 plsql 连接oracle 11g 64位
1.本地连接字符串: string connect = "Data Source=orcl;user=XXX;password=XXX;Persist Security Info=Tru ...
- root密码重置、Linux目录结构和远程连接Linux
一.root如何重置密码 1. 重启 Linux 系统主机并出现引导界面时,按下键盘上的 e 键进入内核编辑界面 2. 在 linux16 参数这行的最后面追加“rd.break”参数,然后按下 Ct ...
- 远程连接Linux
远程连接Linux 为什么要远程连接Linux 在实际的工作场景中,虚拟机界面或者物理服务器本地的终端都是很少接触的,因为服务器装完系统之后,都要拉倒IDC机房托管,如果是购买的云主机,那更碰不到 ...
- linux学习笔记一:远程连接linux服务器
环境介绍:win7电脑,通过VM虚拟出linux系统,安装centOS7 通过Xshell连接linux,ftp访问服务器资源. 遇到的问题,ftp连不上linux 解决:linux上安装ftp服务 ...
- Linux(1)- 服务器核心知识、Linux入门、VMware与centeos安装、远程连接linux、linux基本命令使用
一.服务器核心知识 1.电脑和电脑的硬件组成 现在的人们几乎无时无刻不在使用着电脑!不管是桌上型电脑(桌机).笔记型电脑(笔电).平板电脑,还是智慧型手机等等,这些东西都算是电脑.虽然接触这么多,但是 ...
- 4,远程连接Linux
为什么要远程连接Linux 在实际的工作场景中,虚拟机界面或者物理服务器本地的终端都是很少接触的,因为服务器装完系统之后,都要拉倒IDC机房托管,如果是购买的云主机,那更碰不到服务器本体了,只能通过远 ...
- jconsole远程连接 jmx配置注意事项
由于在测试程序时需要收集程序运行时的内存,CPU等消耗情况.选择了jconsole这个jdk自带工具来观察.为了不影响程序运行状态,用远程连接的方式来具体观察. 首先,程序是放在ubutun系统服务器 ...
- Linux使用SSH远程连接方式和更改密码 ,自己空间转移过来的。
一. 远程连接Linux系统需要一个方便的SSH连接工具putty就不错!工具在本日志的附件下载,解压密码是QQ号,云盘访问密码 90891.把远程主机ip和端口号填写上然后选择连接方式为“SSH”. ...
随机推荐
- 使用PM控制台 查找和安装一个 NuGet Package
1. Get-Package -ListAvailable -Filter elmah -ListAvailable获取所有可用的package,-Filter 关键字过滤 2. Install-P ...
- DOM参考手册及事件参考手册
给全局HTML DOM元素增加函数的方法 HTMLElement.prototype.hasClass = function (className) { return new RegExp(" ...
- iOS - nil null Nil笔记
今天查看Nullability and Objective-C发现里面提到了nil和Null等关键字,做一下笔记. nil -> Null-Pointer to Objective-C O ...
- Yocto开发笔记之《U-boot启动内核流程》(QQ交流群:519230208)
QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 ======================================================== 执行命令 ...
- BZOJ3557: [Ctsc2014]随机数
orz神犇们 clj(pw CCfCtsC2014) zyh cjj pyx vfk 吐槽一句对拍的时候发现这几份代码输出不一样. 每个数看成模2意义下的多项式: \[M_k\equiv x^kM_0 ...
- sql lock
要提升SQL的查询效能,一般来说大家会以建立索引(index)为第一考虑.其实除了index的建立之外,当我们在下SQL Command时,在语法中加一段WITH (NOLOCK)可以改善在线大量查询 ...
- socket传数据并记录到文件中
最近在新项目中要通过socket传一些数据,下面是程序: 功能: 将客户端发送的json数据写入到日志文件中,如果数据不是json的,丢弃. 程序如下: #!/usr/bin/env python # ...
- mysql create db utf8 character
create database if not exists wifi default character set utf8;
- PHP----Ajax异步请求
需要两个PHP页面:1.php是发出请求和接受请求结果的.2.php是处理请求的结果. 1.php中代码: <a href="#" onclick="sendAja ...
- Robot Framework--12 RFS+AutoItLibrary测试web对话框
转自:http://blog.csdn.net/tulituqi/article/details/21871247 Selenium2library在我们实际测试web页面的时候基本上已经够用了,不过 ...