代码改变世界

8.3、文件内容处理

2012-12-03 16:56  TONY|小四  阅读(179)  评论(0编辑  收藏  举报
【资源】
    资源(resource)这个词常常与可以发起输入或输出流的实体联系起来。标准输入或输出、文件和网络套接字都是资源的例子。
 
【将数据写入一个文件的步骤】
  1. 打开这个文件。如果文件不存在,需要先创建它。
  2. 将数据写入这个文件。
  3. 关闭这个文件。
【从文件中读出数据步骤】
  1. 打开这个文件。如果这个文件不能打开,就应该意识到这一点并且正确地退出。
  2. 从文件中读出数据。
  3. 关闭这个文件。
【文件模式】
  1. 打开文件为了只读、只写或者读和写。
  2. 如果要写一个文件,你可能希望覆盖所有已有的文件内容,或者仅仅将新数据追加到文件末尾。如果该文件已经存在,也可以终止程序的执行而不是覆盖该文件。
  3. 如果希望在一个区分了二进制方式和纯文本方式的系统上写一个文件,还必须制定采用的方式。
【函数 fopen()】
支持以上3种文件模式。
$fp=fopen(文件路径,文件模式,[是否在 include_path中搜索一个文件],[允许文件名以协议名称开始(如 http://)])
【文件写操作】
 
 PHP Code By http://t.qq.com/tony-src
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php

    /**
     * 打开文件
     */

    
// 参数1,表明哪个文件
    // 参数2,表明文件模式,w 只写
    // w 如果,file.txt 已经存在,并且有数据。那么,删除这个文件,重新创建
    // 如果没有 file.txt ,那么,自行创建
    // fopen 返回的是资源类型 resource,一般称它为句柄或者资源句柄
    
    $fp = fopen(
'file.txt''a'); // 文件模式 a 为追加写入
    
    
/**
     * 对文件写入数据
     */

    
// 对文件写入数据 方法一
    // \r\n 换行
    $outstring = "my name is tony!\r\n I am 26\r\n";
    
    fwrite($fp, $outstring,strlen($outstring)); 
// 需要句柄的写入方法

    fclose($fp);    
// 关闭文件
    
    
// 对文件写入数据 方法二
    //  file_put_contents('file.txt', $outstring);  // 需要文件名的写入方法,此种方法不需要关闭文件 ,PHP 5
    
?>
 
【文件读操作】
 
 PHP Code By http://t.qq.com/tony-src
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
    /**
     * 读文件 方式一
     */

    $fp = fopen(
'file.txt''r');
    
    
// fgetc(): 读出一个字符,并将指针移到下一个字符。
    // fgets(): 读出一行字符,可以指定一行显示的长度。
    // fgetss(): 从文件指针中读取一行并过滤掉 HTML 标记。
    // fread(): 读取定量的字符。
    // fpassthru():输出文件指针处的所有剩余数据,本身有输出功能,返回剩余数据的长度。
    echo 'fgetc ->'.fgetc($fp).'<br>';
    
echo 'fgets ->'.fgets($fp).'<br>';
    
echo 'fgetss ->'.fgetss($fp).'<br>';
    
echo 'fread ->'.fread($fp, '5').'<br>';
    
echo 'passthru ->'.fpassthru($fp).'<br>';
    
    fclose($fp);
    
    
/**
     * 读文件 方式二
     */

    
// file 将整个文件读入数组中,以行分组
    $array_file = file('file.txt');
    
echo $array_file[4]; // 显示第5行的数据
    
    
/**
     * 读文件 方式三
     */

    
// readfile 是将整个文件读取,readfile 本身能够直接输入浏览器,返回整个文件字节数的总长度
    echo readfile('file.txt');
    
    
/**
     * 读取文件 方式四
     */

    
// file_get_contents 可以读入数据到缓冲区,然后通过 echo 来打印
    echo file_get_contents('file.txt');
    
?>
 
【文件读取位置判断】
 
 PHP Code By http://t.qq.com/tony-src
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
    
    /**
     * 文件结束位置判断
     */

    $fp = fopen(
'file.txt''r');
    
    
while (!feof($fp)){
        
echo fgetc($fp);
    }
    
    fclose($fp);
?>