[问答题]有一个网页地址, 比如PHP开发资源网主页: http://www.phpres.com/index.html,如何得到它的内容?

方法1(对于PHP5及更高版本):
   $readcontents = fopen("http://www.phpres.com/index.html", "rb");
   $contents = stream_get_contents($readcontents);
   fclose($readcontents);
   echo $contents;
   方法2:
   echo file_get_contents("http://www.phpres.com/index.html");

PHP fopen() 函数

定义和用法

fopen() 函数打开文件或者 URL。

如果打开失败,本函数返回 FALSE。

语法

fopen(filename,mode,include_path,context)
参数描述
filename 必需。规定要打开的文件或 URL。
mode 必需。规定要求到该文件/流的访问类型。可能的值见下表。
include_path 可选。如果也需要在 include_path 中检索文件的话,可以将该参数设为 1 或 TRUE。
context 可选。规定文件句柄的环境。Context 是可以修改流的行为的一套选项。

mode 参数的可能的值

mode说明
"r" 只读方式打开,将文件指针指向文件头。
"r+" 读写方式打开,将文件指针指向文件头。
"w" 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
"w+" 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
"a" 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
"a+" 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
"x"

创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。

这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。

此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

"x+"

创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。

这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。

此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

说明

fopen() 将 filename 指定的名字资源绑定到一个流上。如果 filename 是 "scheme://..." 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。

如果 PHP 认为 filename 指定的是一个本地文件,将尝试在该文件上打开一个流。该文件必须是 PHP 可以访问的,因此需要确认文件访问权限允许该访问。如果激活了安全模式或者 open_basedir 则会应用进一步的限制。

如果 PHP 认为 filename 指定的是一个已注册的协议,而该协议被注册为一个网络 URL,PHP 将检查并确认 allow_url_fopen 已被激活。如果关闭了,PHP 将发出一个警告,而 fopen 的调用则失败。

context 的支持是 PHP 5.0.0 添加的。

提示和注释

注释:不同的操作系统家族具有不同的行结束习惯。当写入一个文本文件并想插入一个新行时,需 要使用符合操作系统的行结束符号。基于 Unix 的系统使用 作为行结束字符,基于 Windows 的系统使用 作为行结束字符,基于 Macintosh 的系统使用 作为行结束字符。 如果写入文件时使用了错误的行结束符号,则其它应用程序打开这些文件时可能会表现得很怪异。

Windows 下提供了一个文本转换标记("t")可以透明地将 转换为 。与此对应还可以使用 "b" 来强制使用二进制模式,这样就不会转换数据。要使用这些标记,要么用 "b" 或者用 "t" 作为 mode 参数的最后一个字符。

默认的转换模式依赖于 SAPI 和所使用的 PHP 版本,因此为了便于移植鼓励总是指定恰当的标记。如果是操作纯文本文件并在脚本中使用了 作为行结束符,但还要期望这些文件可以被其它应用程序例如 Notepad 读取,则在 mode 中使用 "t"。在所有其它情况下使用 "b"。

在操作二进制文件时如果没有指定 "b" 标记,可能会碰到一些奇怪的问题,包括坏掉的图片文件以及关于 字符的奇怪问题。

注释:为移植性考虑,强烈建议在用 fopen() 打开文件时总是使用 "b" 标记。

注释:再一次,为移植性考虑,强烈建议你重写那些依赖于 "t" 模式的代码使其使用正确的行结束符并改成 "b" 模式。

例子

<?php
$file = fopen("test.txt","r");
$file = fopen("/home/test/test.txt","r");
$file = fopen("/home/test/test.gif","wb");
$file = fopen("http://www.example.com/","r");
$file = fopen("ftp://user:password@example.com/test.txt","w");
?>

PHP Filesystem 函数

stream_get_contents

(PHP 5, PHP 7)

stream_get_contents — 读取资源流到一个字符串

说明

string stream_get_contents ( resource $handle [, int $maxlength = -1 [, int $offset = -1 ]] )

file_get_contents() 一样,但是 stream_get_contents() 是对一个已经打开的资源流进行操作,并将其内容写入一个字符串返回。 返回的内容取决于 maxlength 字节长度和 offset 指定的起始位置。

参数

 

handle (resource)

一个资源流(例如 fopen() 操作之后返回的结果)

maxlength (integer)

需要读取的最大的字节数。默认是-1(读取全部的缓冲数据)。

offset (integer)

在读取数据之前先查找指定的偏移量。如果这个数字是负数,就不进行查找,直接从当前位置开始读取。

返回值

返回一个字符串 或者在失败时返回 FALSE.

更新日志

 

版本说明
5.1.0 增加参数 offset

范例

 

Example #1 stream_get_contents() 例子

<?php

if ($stream fopen('http://www.example.com''r')) {
    // print all the page starting at the offset 10
    echo stream_get_contents($stream, -110);

    fclose($stream);
}


if ($stream fopen('http://www.example.net''r')) {
    // print the first 5 bytes
    echo stream_get_contents($stream5);

    fclose($stream);
}

?>

注释

Note: 此函数可安全用于二进制对象。



PHP fclose() 函数

定义和用法

fclose() 函数关闭一个打开文件。

语法

fclose(file)
参数描述
file 必需。规定要关闭的文件。

说明

file 参数是一个文件指针。fclose() 函数关闭该指针指向的文件。

如果成功则返回 true,否则返回 false。

文件指针必须有效,并且是通过 fopen()fsockopen() 成功打开的。

例子

<?php
$file = fopen("test.txt","r");

//执行的一些代码...

fclose($file);
?>

PHP file_get_contents() 函数

定义和用法

file_get_contents() 函数把整个文件读入一个字符串中。

file() 一样,不同的是 file_get_contents() 把文件读入一个字符串。

file_get_contents() 函数是用于将文件的内容读入到一个字符串中的首选方法。如果操作系统支持,还会使用内存映射技术来增强性能。

语法

file_get_contents(path,include_path,context,start,max_length)
参数描述
path 必需。规定要读取的文件。
include_path 可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 "1"。
context

可选。规定文件句柄的环境。

context 是一套可以修改流的行为的选项。若使用 null,则忽略。

start 可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 新加的。
max_length 可选。规定读取的字节数。该参数是 PHP 5.1 新加的。

说明

context 参数的支持是 PHP 5.0.0 添加的。

提示和注释

注释:本函数可安全用于二进制对象。

例子

<?php
echo file_get_contents("test.txt");
?>

输出:

This is a test file with test text.
 
原文地址:https://www.cnblogs.com/pizishui/p/5351412.html