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.
 
下面讲述了PHP中file_get_contents高级用法,分享给大家供大家参考。具体分析如下:

首先解决file_get_contents的超时问题,在超时返回错误后就象js中的settimeout那样进行一次尝试,错误超过3次或者5次后就确认为无法连线伺服器而彻底放弃。
这裡就简单介绍两种解决方法:

一、增加超时的时间限制

注意:set_time_limit只是设定你的PHP程式的超时时间,而不是file_get_contents函数读取URL的超时时间。

我一开始以为set_time_limit也能影响到file_get_contents,后来经测试是无效的。真正的修改file_get_contents延时可以用resource $context的timeout参数:

PHP程序代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
$opts = array (
     'http' => array (
       'method' => "GET" ,
       'timeout' =>60,
     )
);
 
$context = stream_context_create( $opts );
 
$html = file_get_contents ( 'http://www.jb51.net' , false, $context );
fpassthru ( $fp );

二、多次尝试

PHP程序代码如下:

?
1
2
3
4
$cnt =0;
while ( $cnt < 3 && ( $str =@ file_get_contents ( 'http...' ))===FALSE){
    $cnt ++;
}

以上方法对付超时已经OK了。接下来演示一下用file_get_contents实现Post,如下:
PHP程序代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function Post( $url , $post = null){
     $context = array ();
     if ( is_array ( $post )) {
       ksort( $post );
 
       $context [ 'http' ] = array (
         'timeout' =>60,
         'method' => 'POST' ,
         'content' => http_build_query( $post , '' , '&' ),
        );
     }
 
     return file_get_contents ( $url , false, stream_context_create( $context ));
}
 
$data = array (
     'name' => 'test' ,
     'email' => 'test@gmail.com' ,
     'submit' => 'submit' ,
);
 
echo Post( 'http://www.jb51.net' , $data );

注意文档头的Set_time_out否则整个文档都得超时了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: file_get_contents 函数PHP 中用于读取文件内容的函数,它可以读取本地文件或远程文件的内容,并将其作为字符串返回。该函数可以用于读取文本文件、HTML 文件、XML 文件、JSON 文件等。同时,该函数还支持设置 HTTP 请求头、超时时间等参数,以满足不同的需求。 ### 回答2: file_get_contents函数PHP中一个用于读取文件内容的函数,其作用是从指定的文件或者URL中读取数据,返回一个字符串用于处理或者输出。 它的使用十分简单,只需要传入一个文件路径或者URL即可,它会返回读取到的数据。 在读取本地文件时,需要传入文件的完整路径,并且需要确保文件有读取权限。而如果要读取远程文件,则可以直接传入远程URL。读取远程文件需要开启相关的PHP扩展(例如PHP Curl或者allow_url_fopen选项)。 file_get_contents函数可以用来读取各种各样的数据类型,包括文本、HTML、XML、JSON以及图片等二进制文件。在读取二进制文件时,需要将返回的字符串进行解码才能正常使用。除此之外,file_get_contents函数还可以设置一些可选参数,如是否使用SSL、是否缓存等等。 需要注意的是,如果读取文件失败,则file_get_contents函数会返回false。因此,在使用时需要判断返回值是否为false,以避免出现不必要的错误。同时,由于它会将整个文件内容读取到内存中,因此在读取大文件时需要谨慎使用,以避免内存占用过大导致程序崩溃。 总的来说,file_get_contents函数PHP中一个非常实用的函数,它可以用于读取各种数据类型,并且使用非常方便。同时,需要注意其中的一些细节,以确保程序能够正常运行。 ### 回答3: file_get_contents 是一个 PHP 函数,用于读取指定 URL 或本地文件,返回该文件的内容。 使用该函数需要传入一个参数,可以是一个 URL 或者是本地文件路径。如果传入的是 URL,则该函数会尝试从该 URL 获取文件内容。如果传入的是本地文件路径,则该函数会尝试读取该路径下的文件内容。 该函数返回读取的文件内容作为一个字符串。如果读取失败,则返回 FALSE。 使用 file_get_contents 函数可以方便地读取远程服务器上的文件,从而实现一些远程数据的获取和处理。同时也可以用于读取本地文件的内容,方便地进行文件操作。 在使用 file_get_contents 函数时,需要注意一些安全性问题。由于该函数可以读取远程服务器上的任意文件,因此可能会被攻击者利用进行远程文件包含等攻击。因此,需要谨慎使用该函数,避免安全漏洞的产生。 总之,file_get_contents 可以方便地读取 URL 或本地文件的内容,是一个非常常用的 PHP 函数。但同时需要注意安全性问题,进行谨慎的使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值