欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP学习笔记--文件目录操作(文件上传实例)

程序员文章站 2022-04-03 13:44:45
...
文件操作是每个语言必须有的,不仅仅局限于PHP,这里我们就仅用PHP进行讲解

php的文件高级操作和文件上传实例我放在文章的最后部分。--以后我还会给大家写一个PHP类似于网盘操作的例子

注意:阅读此文章,必须的备一个 《PHP中文手册》或者其它可以查询PHP函数的手册 因为文章有大量的示例,但是为了节约篇幅和时间,所以请大家自行查阅PHP手册,以明白函数的具体作用

1、php打开文件和关闭文件

  用到的函数 fopen() 、fclose() 注:打开的文件一定要关闭! 具体函数参数请查阅php手册

实例:

View Code

fopen()函数在php5中也支持url格式:

View Code

2、PHP的文件读写

  读操作-

用到的函数 readfile()、file()、file_get_contents()、fgets()、fgetss()、fgetc()

示例中的文件位置请根据自己的文件进行更改,不要纠结文件位置和文件名什么的。重点在学习

文件测试
使用 readfile()函数读取文件内容:
使用 file()函数读取文件内容: "; } ?>
使用 file_get_contents()函数读取文件内容:
使用fgets()函数:
使用fgetss()函数:
使用fgetc()函数:
View Code

写操作-

用到的函数 fwrite()、 file_put_contents()

";    echo fread($fp,filesize($filename)); //输出其余的文件内容    */    $filepath = "05.txt";    $str = "此情可待成追忆   只是当时已惘然
"; echo "用 fwrite() 函数写入文件: "; $fopen = fopen($filepath,"wb") or die("文件不存在"); fwrite($fopen,$str); fclose($fopen); readfile($filepath); echo "

用 file_put_contents() 函数写入文件: "; file_put_contents($filepath,$str); readfile($filepath);?>

View Code

3、php文件本身的操作

本示例只是列举函数,请不要直接运行。运行前请根据自己的需求更改

View Code

===================================================================

一、php目录操作

和文件操作类似,也要打开关闭目录 用opendir()、和closedir()函数进行打开和关闭目录

View Code

二、php目录的游览

核心函数 scandir()

";        }    }    else    {        echo "目录路径错误!";        }?>
View Code

三、php目录的其他操作,获取磁盘目录大小,新建删除目录等等

本示例只是列举函数,请不要直接运行。运行前请根据自己的需求更改

";    chdir("../");  //更改为返回上一级    echo getcwd(); //重新获取当前目录        /*用disk_free_space()函数 返回目录中的可用空间*/    echo disk_free_space("D:/")/pow(1024,3);  //这里换算成了G、默认是以字节显示的        /*用disk_total_space()函数 返回目录中的可用空间*/    echo disk_total_space("D:/")/pow(1024,3);  //这里换算成了G、默认是以字节显示的        /*关于PHP5以前的老游览目录的方法 我就不列举了,这里仅仅给出函数名: readdir()、rewinddir()*/?>
View Code

====================================================================

文件的高级运用

文件指针:

";   //输出总字节数        $fopen = fopen($filename,"rb");    //打开文件 , 以只读的二进制文件格式的去        echo "初始指针位置是: ".ftell($fopen)."
"; //输出指针位置 fseek($fopen,3); //移动指针 echo "使用 fseek() 函数后指针位置: ".ftell($fopen)."
"; //输出移动后的指针位置 echo "输出当前指针后面的内容: ".fgets($fopen)."
"; //输出从当前指针到行尾的内容 if(feof($fopen)) //判断指针是否指向文件末尾 { echo "当前指针指向文件末尾: ".ftell($fopen)."
"; //如果指向了文件尾,则输出指针位置 } //使用rewind() 函数返回文档流的开头 --一旦流读到末尾再度就读不到数据了, //所以这里要重新指向一个文件的指针 rewind($fopen); //查看使用 rewind() 函数后指针的位置 echo "使用 rewind() 函数后指针的位置: ".ftell($fopen)."
"; echo "输出前 6 个字节的内容: ".fgets($fopen,6); //输出前6个字节的内容 fclose($fopen); //关闭文件 } else { echo "文件不存在!"; }?>
View Code

文件锁定:

View Code

====================================================================

文件的上传

获取上传文件的信息:

无标题文档
请选择上传文件:
$value) //使用foreach循环输出上传文件信息的名称和值 { echo $name.'='.$value."
"; } } ?> View Code

真正的文件上传(从临时到指定位置):

无标题文档
0) //判断文件大小 { //上传文件 move_uploaded_file($fileinfo['tmp_name'],"upfile/".$fileinfo['name']); echo "文件上传成功!"; } else { echo "文件太大或者未知"; } } ?> View Code

多文件上传:

无标题文档
上传文件
上传文件
"; } } } ?> View Code