php 处理文件
来源:互联网 发布:人生 不 快乐 知乎 编辑:程序博客网 时间:2024/06/15 20:22
今天来总结一下php怎么处理文件。包括文件的读取与写入,文件的上传。文件的下载。
一、文件的读写
php 提供了许多处理文件的方法,我这里只讲其中一部分,更多方法请去php官网查看。
1.打开文件
$file = fopen(路径,打开模式);
fopen()方法为我们打开文件,如果成功返回该文件,如果失败返回(0)false。它有两个参数,第一个参数是打开文件的路径,第二个参数是打开文件的模式。打开模式提供一下方法:
2.检测文件末尾
feof($file)
用于当读取文件时,判断是否达到文件末尾,达到了返回true。未达到返回false。
3.读取文件
fgets( $file ) // 逐行读取文件,可以利用它来判读文件有多少行fgetc($file) // 逐字符读取文件
4.关闭文件
fclose( $file )
5.写入内容:
file_put_contents(file,data,mode,context)
- file 必需。规定要写入数据的文件。如果文件不存在,则创建一个新文件。
- data 必需。规定要写入文件的数据。可以是字符串、数组或数据流。
- mode 可选。规定如何打开/写入文件。可能的值:
FILE_USE_INCLUDE_PATH
FILE_APPEND
LOCK_EX
- context 可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。
写入文件遵循以下规则:
如果设置了 FILE_USE_INCLUDE_PATH,那么将检查 filename 副本的内置路径
如果文件不存在,将创建一个文件
打开文件
如果设置了 LOCK_EX,那么将锁定文件
如果设置了 FILE_APPEND,那么将移至文件末尾。否则,将会清除文件的内容
向文件中写入数据
关闭文件并对所有文件解锁
6.其他函数
file_get_contents() // 把文件读入字符串basename() // 返回路径中文件名不封copy() // 复制文件dirname() // 返回路径中的目录名称部分disk_free_space() // 返回目录的可用空间disk_tota;_space() // 返回一个目录磁盘的总容量filesize() // 返回文件大小unlink() // 删除文件move_uploaded_file() // 将文件保存到指定文件夹
重点内容
向文件写入内容时,要将文件权限设置为 777;具体设置方法,我这不在写,可以网上搜索。
二、上传文件
这里直接上代码,因为比较简单。
HTML:
<form action="upload.php" method='post' enctype="multipart/form-data"> <p><input type="file" name="file"></p> <p><input type="submit"></p></form>
PHP:
<?phpheader("Content-type:text/html;charset=utf-8");echo "文件名称 " . $_FILES["file"]["name"] . '<br/>';echo "文件大小,以字节计 " . $_FILES["file"]["size"] . '<br/>';echo "文件类型 " . $_FILES["file"]["type"] . '<br/>';echo "文件临时存储的位置 " . $_FILES["file"]["tmp_name"] . '<br/>';echo "文件上传导致的错误代码: " . $_FILES["file"]["error"] . '<br/>';// 上面是获取文件的一些信息,form表单提交后,利用超全局变量$_FILES 就可以获取上传文件。if(file_exists("newfile/" . $_FILES["file"]["name"])){ // 判断文件是否存在 echo $_FILES["file"]["name"] . "已存在";}else{ // 将缓存文件保存的指定文件夹move_uploaded_file($_FILES['file']['tmp_name'],"newfile/".$_FILES["file"]["name"]);}?>
三、下载文件
<?phpheader("Content-type:text/html;charset=utf-8");$file_name = "text.txt"; //下载文件名 $file_dir = "./"; //下载文件存放目录 //检查文件是否存在 if (! file_exists ( $file_dir . $file_name )) { echo "文件找不到"; exit (); } else { //打开文件 $file = fopen ( $file_dir . $file_name, "r" ); //下载文件需要用到的头 Header ( "Content-type: application/octet-stream" ); Header ( "Accept-Ranges: bytes" ); Header ( "Accept-Length: " . filesize ( $file_dir . $file_name ) ); Header ( "Content-Disposition: attachment; filename=" . $file_name ); //输出文件内容 //读取文件内容并直接输出到浏览器 echo fread ( $file, filesize ( $file_dir . $file_name ) ); fclose ( $file ); exit (); } ?>
- Header(“Content-type: application/octet-stream”)的作用:通过这句代码客户端浏览器就能知道服务端返回的文件形式
Header(“Accept-Ranges: bytes”)的作用:告诉客户端浏览器返回的文件大小是按照字节进行计算的
Header(“Accept-Length:”.file_size)的作用:告诉浏览器返回的文件大小 Header(“Content-Disposition: attachment; filename=”.files file_name)的作用:告诉浏览器返回的文件的名称
以上四个Header()是必需的
阅读全文
0 0
- [PHP]文件上传处理
- php文件处理
- 文件处理 php
- php处理上传文件
- PHP 简单文件处理
- PHP 文件处理
- PHP 文件处理
- 【php】文件处理操作
- php文件处理
- php文件的处理
- PHP上传文件处理
- PHP 处理 TXT 文件
- php 文件处理
- php 文件处理
- php文件处理
- PHP 文件处理
- PHP 文件处理
- php上传文件处理
- poj 3253
- 高通平台中简单了解DTB
- 【人工智能】图像识别之小白天书——验证码篇(3)
- ARP协议【地址解析协议】
- ELK 日志分析系统(二)
- php 处理文件
- WIN10使用 NetSpeedMonitor
- Linux select服务器
- [LeetCode-6]ZigZag字符串的变换输出
- eclipse使用run on server 方法发布到tomcat时候的坑
- 一个人一件事一首歌
- std::map常见使用错误
- MyBatis 插入空值时,需要指定JdbcType
- arrow function