1. fopen, fread
1 if($file = fopen("http://www.example.com/", "r")) {
2 while(!feof ($file))
3 $data .= fread($file, 1024);
4 }
5 fclose($file);
2. file_get_contents
很简单的一句话:
$data = file_get_contents("http://www.example.com/");
如果要限制超时时间,需要使用到它的$context参数
1 $opts = array('http' => array('timeout' => 30) );
2 $context = stream_context_create($opts);
3 $data = file_get_contents("http://www.example.com/", false, $context);
其中,第二个参数$use_include_path表示在php.ini设置的include_path中查找文件,使用false即可。
此外,本函数也可以发送POST数据:
1 $opts = array('http' => array(
2 'method' => 'POST',
3 'content' => 'x=1&y=2'));
4 $context = stream_context_create($opts);
5 $data = file_get_contents("http://www.example.com/", false, $context);
相对来说第二种方法比较快捷。以上两种方法需要php.ini设置allow_url_fopen=On。
3. fsockopen, fwrite, fread
01 if($fp = fsockopen('www.example.com', 80, $errno, $errstr, 30)) {
02 $header = "GET /ip.php?ip=$ip HTTP/1.0rn";
03 $header .= "HOST: www.example.comrn";
04 $header .= "Connection: Closernrn";
05 fwrite($fp, $header);
06 stream_set_timeout($fp, 2);
07 while(!feof($fp))
08 $data .= fread($fp, 128);
09 fclose($fp);
10 }
本方法需要开启php_sockets扩展
4. curl
1 $curl = curl_init();
2 curl_setopt($curl, CURLOPT_URL, "http://www.example.com/");
3 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
4 curl_setopt($curl, CURLOPT_TIMEOUT, 30);
5 $data = curl_exec($curl);
6 curl_close($curl);
curl也可用来发送POST数据及发送HTTP请求头信息,以下是另一用例:
01 $curl = curl_init();
02 curl_setopt_array($curl, array(
03 CURLOPT_URL => "http://192.168.1.200/",
04 CURLOPT_RETURNTRANSFER => 1,
05 CURLOPT_POSTFIELDS => array('name'=>'Foo', 'password'=>'Bar'),
06 CURLOPT_POST => 1,
07 CURLOPT_HTTPHEADER => array('Host:www.example.com', 'Referer:www.example.com'),
08 );
09 $data = curl_exec($curl);
10 curl_close($curl);
本方法需要开启php_curl扩展

PHP读取远程文件的4种方法的更多相关文章

  1. PHP读取远程文件的三种方法

    file_get_contents <?php$url = http://www.xxx.com/;$contents = file_get_contents($url);//如果出现中文乱码使 ...

  2. java分享第十六天( java读取properties文件的几种方法&java配置文件持久化:static块的作用)

     java读取properties文件的几种方法一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取Propert ...

  3. matlab读取cvs文件的几种方法

    matlab读取CVS文件的几种方法: 1,实用csvread()函数   csvread()函数有三种使用方法: 1.M = csvread('filename')2.M = csvread('fi ...

  4. R语言读取excel文件的3种方法

    R读取excel文件中数据的方法: 电脑有一个excel文件,原始的文件路径是:E:\R workshop\mydata\biom excel数据为5乘2阶矩阵,元素为                ...

  5. PHP读取大文件的几种方法介绍

    读取大文件一直是一个头痛的问题,我们像使用php开发读取小文件可以直接使用各种函数实现,但一到大文章就会发现常用的方法是无法正常使用或时间太长太卡了,下面我们就一起来看看关于php读取大文件问题解决办 ...

  6. Java读取Excel文件的几种方法

    Java读取 Excel 文件的常用开源免费方法有以下几种: 1. JDBC-ODBC Excel Driver 2. jxl.jar 3. jcom.jar 4. poi.jar 简单介绍: 百度文 ...

  7. 读取Excel文件的两种方法

    第一种方法:传统方法,采用OleDB读取EXCEL文件, 优点:写法简单,缺点:服务器必须安有此组件才能用,不推荐使用 private DataSet GetConnect_DataSet2(stri ...

  8. QT 读取txt文件的几种方法

    废话不说直接上代码 1. QString displayString; QFile file("/home/alvin/text.txt"); if(!file.open(QIOD ...

  9. java读取properties文件的几种方法

    一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取 Properties p=new Properties(); ...

随机推荐

  1. C语言总结(2)

    1.函数printf(" ")可以输出双引号中任何固定不变的内容. 2.必须在程序前面加:预处理命令. 3.#include<stdio.h>后面不需要“:”,“:”. ...

  2. 【bzoj2467】[中山市选2010]生成树 矩阵树定理

    题目描述 有一种图形叫做五角形圈.一个五角形圈的中心有1个由n个顶点和n条边组成的圈.在中心的这个n边圈的每一条边同时也是某一个五角形的一条边,一共有n个不同的五角形.这些五角形只在五角形圈的中心的圈 ...

  3. HDU——1272小希的迷宫(并查集+拓扑排序)

    小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  4. [AtCoderContest075F]Mirrored

    [AtCoderContest075F]Mirrored 试题描述 For a positive integer \(n\), we denote the integer obtained by re ...

  5. 本博客由CSDN迁移而来,以前的博文可能显示不正常

    如题,原博客地址 http://blog.csdn.net/vicjiao 或点击右侧友链

  6. 刷题总结——跳蚤(poj1091容斥+分解质因数)

    题目: Description Z城市居住着很多只跳蚤.在Z城市周六生活频道有一个娱乐节目.一只跳蚤将被请上一个高空钢丝的正中央.钢丝很长,可以看作是无限长.节目主持人会给该跳蚤发一张卡片.卡片上写有 ...

  7. [转] 细说linux挂载——mount

    转载的文章不能分类 这点比较坑   暂时先发到随笔里了 标题会标注的 找到一篇写的对挂载比较好的文章  收藏ing 作者:adagio   Ubuntu社区 原帖网址:http://forum.ubu ...

  8. net2:DropDownList的使用

    原文发布时间为:2008-07-29 -- 来源于本人的百度文章 [由搬家工具导入] using System;using System.Data;using System.Configuration ...

  9. 学习javascript设计模式之装饰者模式

    1.装饰者模式定义:给对象动态添加职责的方式称为装饰者(decorator)模式. js如何实现装饰者模式 通过保存原函数引用方式改写某函数 window.onload = function(){al ...

  10. BZOJ——1622: [Usaco2008 Open]Word Power 名字的能量

    http://www.lydsy.com/JudgeOnline/problem.php?id=1622 Description     约翰想要计算他那N(1≤N≤1000)只奶牛的名字的能量.每只 ...