PHP 读取文件的常见方法汇总

发布时间:2019-08-10编辑:脚本学堂
本文介绍下,php中进行文件读取的一些常见方法,在php编程中对文件的操作还是很常见的,建议大家认真阅读下本文。

6、file_get_contents方法
string file_get_contents ( string $filename [, bool $use_include_path [, resource $context [, int $offset [, int $maxlen ]]]] )
将文件读入一个字符串。第三个参数$context可以用来设置一些参数,比如访问远程文件时,设置超时等等。

另外,file_get_contents相对于以上几个函数,性能要好得多,所以应该优先考虑使用file_get_contents。但是readfile貌似比file_get_contents性能好一点(?),因为它不需要调用fopen。
 

复制代码 代码示例:
<?php
    $ctx = stream_context_create(array(
        'http' => array(
            'timeout' => 1    //设置超时
            )
        )
    );
    echo file_get_contents("http://www.jb200.com/", 0, $ctx);
?>

有关file_get_contents的内容,可以参考:
php file_get_contents抓取页面信息的代码
php file_get_contents函数抓取页面信息的代码
php file_get_contents函数代理获取远程页面的代码
php file_get_contents函数的使用问题

7、passthru方法
int fpassthru ( resource $handle )
将给定的文件指针从当前的位置读取到 EOF 并把结果写到输出缓冲区。
 

复制代码 代码示例:
<?php
    header("Content-Type:text/html;charset=utf-8");
    $handle = fopen('./test2.php', 'r');
    fseek($handle, 1024);//将指针定位到1024字节处
    fpassthru($handle);
?>
 

 
8、parse_ini_file方法
array parse_ini_file ( string $filename [, bool $process_sections ] )
parse_ini_file() 载入一个由 filename 指定的 ini 文件,并将其中的设置作为一个联合数组返回。如果将最后的 process_sections 参数设为 TRUE,将得到一个多维数组,包括了配置文件中每一节的名称和设置。process_sections 的默认值是 FALSE。

注意:
1. 如果 ini 文件中的值包含任何非字母数字的字符,需要将其括在双引号中(")。
2. 有些保留字不能作为 ini 文件中的键名,包括:null,yes,no,true 和 false。值为 null,no 和 false 等效于 "",值为 yes 和 true 等效于 "1"。字符 {}|&~![()" 也不能用在键名的任何地方,而且这些字符在选项值中有着特殊的意义。

test.ini文件内容:
 

; This is a sample configuration file
; Comments start with ';', as in php.ini

[first_section]
one = 1
five = 5
animal = BIRD

[second_section]
path = "/usr/local/bin"
URL = "http://www.example.com/~username

test.php内容:
 

复制代码 代码示例:
<?php
    $config = parse_ini_file('./test.ini', ture);
    print_r($config);
?>

输出内容:
 

Array
(
    [first_section] => Array
        (
            [one] => 1
            [five] => 5
            [animal] => BIRD
        )

    [second_section] => Array
        (
            [path] => /usr/local/bin
            [URL] => http://www.example.com/~username
        )

)

注意事项:
1. 在处理二进制文件时使用 b 标志,即使系统并不需要,可以使脚本的移植性更好。
2. allow_url_fopen选项激活了 URL 形式的 fopen 封装协议使得可以访问 URL 对象例如文件。默认的封装协议提供用 ftp 和 http 协议来访问远程文件,一些扩展库例如 zlib 可能会注册更多的封装协议。出于安全性考虑,此选项只能在 php.ini 中设置。
3. 如果要打开有特殊字符的 URL (比如说有空格),就需要使用 urlencode() 进行 URL 编码。

就是这些内容了,应该说掌握了这些读取文件的php方法,对php中文件操作的相关知识,已经算是了解很多了。