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学习";
由于dai和PHP文件夹都不存在,所以可以使用创建多及目录的方式创建"php学习"文件
51 }else{ 52 echo '文件已存在'; 53 } 54 echo'<br>'; 55 rmdir($dir);//删除目录 56 echo'<br>';

 

文件上传——前台: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();   删除目录

 

posted on 2016-12-06 14:37  PHP博客园  阅读(258)  评论(0)    收藏  举报

导航