《PHP开发手册》笔记之PHP中关于文件的操做函数

打开文件

fopen(string filename,string mode);//返回一个资源对象,存储当前文件资源

解释php

filename:文件的文件名及其所在路径,
 mode:文件的打开模式,mode的值能够以下表所示。
model的值 说明
r 只读方式打开,将文件指针指向文件头
r+ 读写方式打开,将文件指针指向文件头
w 写入方式打开,若是文件存在会将文件清空,若是文件不存在则建立
w+ 读写方式,若是文件存在会将文件清空,若是文件不存在则建立
a 写入方式打开,若是文件存在则追加,若是文件不存在则建立
a+ 读写方式打开,若是文件存在则追加,若是文件不存在则建立
x 写入方式打开,若是文件存在则打开失败,若是文件不存在则建立
x+ 读写方式打开,若是文件存在则打开失败,若是文件不存在则建立

关闭文件

void fclose(file_resource);

解释数组

file_resource:指使用fopen()函数打开文件时返回的资源对象。

例子 关闭文件操做服务器

读取文件

1.读取文件中的一个字符
string fgetc($file_resource);//读取文件中的一个字符,返回文件中的一个字符并将指针移动到下一个字符

解释app

file_resource:指使用fopen()函数打开文件时返回的资源对象。

例子 使用fgetc()函数读取文件函数

2.读取文件中的一行(实际应用中最常使用)
string fgets($file_resource);//读取文件中的一行,返回文件中的一行并将指针移动到下一行

解释指针

file_resource:指使用fopen()函数打开文件时返回的资源对象。

例子 使用fgets()函数读取文件code

3.读取文件中的任意长字符
string fread($file_resource,int length);//读取文件中的任意长字符,返回文件中的一行并将指针移动到下一行

解释对象

file_resource:指使用fopen()函数打开文件时返回的资源对象。
length:要读取的字符长度,若是length长度超过文件的长度,文件的所有内容将被返回

例子 使用fread()函数读取文件资源

<?php
    $file = fopen("test\\file.txt",'r');//以只读的方式打开test文件夹下的file.txt文件
    echo fread($file,20);//输出文件中的前20个字符
    fclose($file);//关闭文件
?>

应用字符串

  • fread()函数一般结合filesize()函数来获取文件的所有内容。

    int filesize(string filename);//读取文件大小的字节数

    filename:文件名及其所在路径

  • 例子:返回文件的全部内容

    <?php
       $filename = "test\\file.txt";//文件名
       $file = fopen($filename,'r');//以只读的方式打开test文件夹下的file.txt文件
       filesize = filesize($file);//获取文件内容的字符长度
       echo fread($file,filesize);//输出文件中的所有内容
       fclose($file);//关闭文件
    ?>

写入文件

int fwrite(file_resource,string str,[,int length]);

解释

file_resource:指使用fopen()函数打开文件时返回的资源对象。
str:要写入文件的字符串
length:可选参数,指定length则只将str的前length长度写入文件

例子 使用fwrite()函数写入文件

删除文件

bool unlink(string filename);//删除文件

解释

filename:文件名及其所在路径。

例子 使用unlink()函数删除文件

复制文件

bool copy(string filename1,string filename2);//复制文件,将filename1文件复制到filename2

解释

filename1:源文件的文件名及其所在路径。
filename1:目标文件的文件名及其所在路径。

例子 使用copy()函数复制文件

文件的上传

bool move_upload_file(string filename1,string filename2);

解释

filename1:客户端源文件的文件名及其所在路径。
filename1:服务器上目标文件的文件名及其所在路径。

例子 文件的上传

  • 拓展 PHP中的全局变量$_FILES,它是一个二维的全局变量数组。数组中每一行由5个元素组成

    1.$_FILES[]['name']:客户端源文件名
    2.$_FILES[]['size']:上传文件的字节数
    3.$_FILES[]['type']:上传文件的类型
    4.$_FILES[]['tmp_name']:上传文件后在服务器上的临时存储文件名
    5.$_FILES[]['error']:上传文件的错误代码,若是为0表示没有错误发生

文件的下载

例子 文件的下载,对downloads文件中的文件进行浏览和下载的功能

<?php
    $res = 'downloads/';
    if(!isset($_GET['file'])){//若是参数中没有指定文件名,则读取文件列表
        $dir_res = opendir($dir);//打开downloads文件夹
        echo “<h1>文件下载</h1>”;
        while($filen = readdir($dir_res)){//读取输出文件名
            if($filen != "." and $filen != ".." ){//过滤当前目录和上一级目录不显示
                echo "<a href='?file=".$filen."'>".$filen."</a><br>";
            }
            closedir($dir_res);
        }
    }else{//存在文件
        $file_name = $dir.$_GET['file'];//获取当前文件名
        if($fh = fopen($file_name,'r')){//打开文件
            $fsize = filesize[$file_name];//得到文件大小
            $path_parts = pathinfo($file_name);//获取文件路径信息
            header(“Content-type:application/octet-stream”);//定义文件类型
            header(“Content-Disposition:filename=\"".$path_parts['basename']."\"”);//定义文件名
            header(“Content-length:”.$fsize);//定义文件大小
            while(!feof($fh)){//读取文件并输出
                $buffer = fread($fh,2048);
                echo $buffer;
            }
        }
    }
  ?>
相关文章
相关标签/搜索