file文件的操作
1 <?php 2 //echo readfile('D:\\123.txt');//读取文件内容第一种方式,返回字符串,但是带有长度 3 echo '<br>'; 4 //var_dump(file('D:\\123.txt'));//读取文件内容第二种方式,file返回结果是一个数组 5 echo '<br>'; 6 //echo file_get_contents('D:\\123.txt');//读取文件第三种方式,返回字符串,此方式用的最多 7 //echo file_get_contents('http://www.baidu.com');//不仅可以获取本地内容,也可以获取url地址 8 //echo readfile('http://www.baidu.com'); 9 //var_dump(file('http://www.baidu.com')); 10 11 //往文件中写内容,若改文件不存在则会创建一个文件,FILE_APPEND追加内容如果不写是覆盖原内容 12 //LOCK_EX独占锁,同时操作一个文件时的先后顺序, 13 //file_put_contents('D:\\1235.txt', 'hello FADSF',FILE_APPEND,LOCK_EX); 14 //echo file_get_contents('D:\\1235.txt'); 15 16 echo basename('D:\\1235.txt');//根据某个路径返回文件名 17 echo'<br>'; 18 echo __FILE__; //返回 目录+文件名 19 echo'<br>'; 20 echo dirname(__FILE__);//dirname获取文件目录名 21 echo "<br>"; 22 echo __DIR__; //等同于dirname(__FILE__); 返回目录 23 echo'<br>'; 24 echo dirname(dirname(__FILE__)); 25 echo'<br>'; 26 var_dump(pathinfo('D:\\1235.txt'));//返回文件相关信息,返回值是数组,可添加第二个参数,单独获取一个信息 27 echo'<br>'; 28 echo filetype('D:\\1235.txt');//文件类型 29 echo'<br>'; 30 echo filesize('D:\\1235.txt');//文件大小 31 echo'<br>'; 32 echo filemtime('D:\\1235.txt');//返回Unix时间戳,文件上次的修改时间 33 echo'<br>'; 34 echo date('Y-m-d H:i:m',filemtime('D:\\1235.txt')); 35 echo'<br>'; 36 echo date('Y-m-d H:i:m', fileatime('D:\\1235.txt'));//上次访问时间,创建时间 37 echo'<br>'; 38 echo date('Y-m-d H:i:m',filectime('D:\\1235.txt')); 39 echo'<br>'; 40 copy('D:\1235.txt', 'D:\1236.txt');//从原文件目录复制到目标文件目录 41 echo'<br>'; 42 unlink('D:\\1236.txt');//删除文件 43 echo'<br>'; 44 var_dump(is_dir('D:\wps'));//判断文件路径是否是一个目录 45 echo'<br>'; 46 $dir= dirname(__FILE__); 47 $dir=$dir.'/img/img'; 48 if(!file_exists($dir)){ 49 //第二个参数x--执行 r--读取 w--写 x:1 r:4 w:2 ;代表权限 50 mkdir($dir,0777,TRUE);//第三个参数表示创建文件的时候是否要创建多级目录,比如要创建$path="dai/php/php学习";51 }else{ 52 echo '文件已存在'; 53 } 54 echo'<br>'; 55 rmdir($dir);//删除目录 56 echo'<br>';
由于dai和PHP文件夹都不存在,所以可以使用创建多及目录的方式创建"php学习"文件
文件上传——前台:form.html
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>TODO supply a title</title> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 8 </head> 9 <body><!--enctype MIME编码格式 默认格式下显示 ?name=value& $_POST[name]--> 10 <form action="fileup.php" method="post" enctype="multipart/form-data"> 11 文件1: <input type="file" name="upload1"> 12 文件2: <input type="file" name="upload2"> 13 <br> 14 <input type="submit" value="提交"> 15 </form> 16 <audio src="../../resource/2016-09-02/陈慧琳-不如跳舞.mp3" autoplay="autoplay" > 17 18 </audio> 19 </body> 20 </html>
文件上传方法:
multipart/form-data 上传图片编码格式
enctype=编码格式
iconv(UTF-8,GBK,$name); 编码格式转换
后台通过$_FILES接收文件。
tmp_name 临时文件名,上传文件是系统自动生成
header();
location.href=''; 跳转页面
file_exists(); 文件或目录是否存在,若不存在mkdir()创建;
move_uploaded_file($_FILES[$k]['tmp_name'],路径); 文件上传即把临时文件移动到目标路径中
opendir(一个合法的目录路径); 打开目录,一般情况下在前面加上@来抑制错误,若不能打开则返回false,
readdir(opendir($path)); 读取目录,
$file=readdir(handle);必须写在while中,代表一个指针。handle为使用opendir()打开的一个目录指针。
is_dir(); 判断是否是目录
is_file(); 判断 是否是文件
scandir(); 浏览目录
文件上传代码:fileup.php
1 <?php 2 $limit_size=1024*1024*15;//限制文件大小 3 $type=['.doc','.ppt','.docx','.jpg','.txt','.mp3'];//限制上传文件类型 4 echo "<pre>"; 5 var_dump($_FILES); 6 foreach ($_FILES as $k=>$v){ 7 if(empty($_FILES[$k]['name'])){ 8 echo "<script>alert('请选择上传文件');location.href='form.html';</script>"; 9 exit; 10 } 11 $filename=$_FILES[$k]['name']; 12 $ext=strrchr($filename, '.');//某个字符最后一次出现的位置向后截取字符串 13 $pos= strrpos($filename, '.');//某个字符最后一次出现的位置 14 $name= substr($filename,0,$pos); 15 if(!in_array($ext, $type)){ 16 echo "<script>alert('上传文件格式不对');location.href='form.html';</script>"; 17 } 18 if($_FILES[$k]['size']>$limit_size){ 19 echo "<script>alert('文件过大');location.href='form.hrml';</script>"; 20 exit; 21 } 22 $path=dirname(__FILE__).'/../../resource/'.date('Y-m-d'); 23 if(!file_exists($path)){//判断文件是否存在 24 mkdir($path);//创建 25 } 26 //文件上传其实就是把临时文件移动到目标文件 27 $name= iconv('UTF-8', 'GBK', $name);//编码转换,为了避免有中文字符,最好加上 28 $filename= iconv('UTF-8', 'GBK', $filename); 29 //if(copy($_FILES['upload']['tmp_name'],$path.'/'.$filename)){ 30 // echo '上传成功'; 31 //}else{ 32 // echo '上传失败'; 33 //} 34 move_uploaded_file($_FILES[$k]['tmp_name'],$path.'/'.$filename); 35 }
浏览文件目录:dir.php
1 <?php 2 $path="../../resource/images"; 3 function eachdir($path){ 4 $dir=@opendir($path); 5 //$file=readdir($dir);//必须写在while里边,代表一个指针 6 while(($file=readdir($dir))!==false){ 7 // echo $file.'<br>'; 8 if($file=="."||$file==".."){ 9 continue; 10 } 11 if(is_dir($path.'/'.$file)){ 12 eachdir($path.'/'.$file); 13 }elseif(is_file($path.'/'.$file)){ 14 echo $file."<br>"; 15 } 16 } 17 } 18 eachdir($path); 19 echo '<pre>'; 20 //var_dump(scandir($path));
file.php 文件的操作函数,
1 <?php 2 //$handle=fopen('D:\\123.txt', 'r');//fopen打开文件,文件必须存在 3 //echo fgets($handle);//读取数据,只能获取一行数 4 //feof($handle);//测试文件指针是否到了文件的结束位置。 5 //while(!feof($handle)){ 6 // echo fgets($handle); 7 //} 8 //fclose($handle); 9 //$handle1=fopen('D:\\123.txt', 'w');//如果文件不存在,会自动生成文件 10 //fwrite($handle1, 'hello php'); 11 //fclose($handle1); 12 // 13 $handle2=fopen('D:\\123.txt', 'a');//追加,append,如果文件不存在会自动生成 14 fwrite($handle2, 'append content'); 15 fclose($handle2); 16 17 $handle= fopen('D:\\123.txt', 'r+');//读写的方式打开文件, 18 fwrite($handle, 'hello php');//不完全覆盖原来的文件,按照目前文件的字符数覆盖, 19 rewind($handle);//移动文件指针 20 while(!feof($handle)){ 21 echo fgets($handle).'<br>'; 22 } 23 fclose($handle); 24 25 26 //$handle= fopen('D:\\123.txt', 'w+');//读写的方式打开文件,若文件不存在会自动生成 27 //fwrite($handle, 'hello php');//完全覆盖源文件, 28 //rewind($handle);//移动文件指针,把指针移动到文件的头,否则只能写入不能读取, 29 //while(!feof($handle)){ 30 // echo fgets($handle).'<br>'; 31 //} 32 //fclose($handle); 33 34 //$handle= fopen('D:\\123.txt', 'a+');//读写的方式打开文件,若文件不存在会自动生成 35 //fwrite($handle, 'hello php');//完全覆盖源文件, 36 //rewind($handle);//移动文件指针,把指针移动到文件的头,否则只能写入不能读取, 37 //while(!feof($handle)){ 38 // echo fgets($handle).'<br>'; 39 //} 40 //fclose($handle); 41 42 //$handle= fopen('D:\\123.txt', 'rw+');//读写的方式打开文件,若文件不存在不会自动生成 43 //fwrite($handle, 'hello php');//完全覆盖源文件, 44 //rewind($handle);//移动文件指针,把指针移动到文件的头,否则只能写入不能读取, 45 //while(!feof($handle)){ 46 // echo fgets($handle).'<br>'; 47 //} 48 //fclose($handle); 49 50 //$handle= fopen('D:\\1234.txt', 'x'); 51 //fwrite($handle, 'hello php'); 52 53 54 55 56 //$handle= fopen('D:\\123.txt', 'w+');//读写的方式打开文件,若文件不存在不会自动生成 57 //fwrite($handle, "<h1>hello php<h1>");//完全覆盖源文件, 58 //rewind($handle);//移动文件指针,把指针移动到文件的头,否则只能写入不能读取, 59 //while(!feof($handle)){ 60 // echo fgetss($handle).'<br>';//fgetss会过滤掉html标签或是PHP标签,一般很少用; 61 //} 62 //fclose($handle); 63 64 65 //$handle= fopen('D:\\123.txt', 'w+');//读写的方式打开文件,若文件不存在不会自动生成 66 //fwrite($handle, "<h1>hello php<h1>");//完全覆盖源文件, 67 //rewind($handle);//移动文件指针,把指针移动到文件的头,否则只能写入不能读取, 68 //while(!feof($handle)){ 69 // echo fgetc($handle).'<br>';//fgetc获取字符 70 //} 71 //fclose($handle); 72 73 //$handle= fopen('D:\\123.txt', 'w+');//读写的方式打开文件,若文件不存在不会自动生成 74 //fwrite($handle, "<h1>hello world<h1>");//完全覆盖源文件, 75 //rewind($handle);//移动文件指针,把指针移动到文件的头,否则只能写入不能读取, 76 //while(!feof($handle)){ 77 // echo fread($handle,2).'<br>';//fread第二个参数是字节数 78 //} 79 //fclose($handle);
文件函数:
fopen(); 打开文件
fgets(); 读取数据,获取下一行
fclose(); 关闭文件
fwrite();
fread(); 读取任意长度字符串
rewind(); 移动指针到文件头
调用fgets函数后,文件指针会移动到下一行,
调用fgetc函数后,文件指针会移动到下一个字符,
读取文件内容有三种方法: (这里的内容包括本地内容和url地址)
1,readfile();返回字符串和长度
2,file(); 返回数组
3,file_get_contents(); 返回字符串
file_get_contents(); //集合了fopen(),fgets(),fclose()
file_put_contents(文件地址,追加内容,FILE_APPEND); //相当于fopen(),fwrite(),fclose,
basename(); 根据路径返回文件名
dirname(/a/b); 获取目录的名称/a
dirname(__FILE__);相当于__DIR__
directory-separator 文件目录分割符,是一个常量,在Windows下时\ 在Linux下是/
pathinfo(); 返回文件相关信息(数组)
mkdir(); 新建目录
rmdir(); 删除目录
浙公网安备 33010602011771号