PHP自学之路------PHP文件编程

文件编程
文件编程的必要性
在网站开发中,我们要使用到文件的上传和下载,就是经典的文件编程的使用
文件的基本概念
文件就是保存数据(二进制素具,文本数据),在程序员看来,文件就是数据的来源。
文件流
在对文件进行操作的过程中,我们以流的概念来操作

 
从该图中我们可以看出,如果你的数据是从程序(内存)向文件(磁盘)流动,则我们成为输出流,反之输入流。
文件-操作的方式
本地操作和远程操作(通过网络)

常用的文件操作函数
获取文件信息函数

   

";
    	print_r($file_info);
    	echo "
"; echo "文件大小".$file_info['size']; } else{ echo "fopen file error!
"; } //关闭文件!!必须关闭 fclose($fp); //****获取文件信息第二种方式 echo "
".filesize($file_path); echo "
".filemtime($file_path); echo "
".filectime($file_path); echo "
".fileatime($file_path); ?>


读文件获得文件内容

";
    		//注意:在默认情况下,我们得到的内容输出到网页后,是没有换行的
    		//不认\r\n 需要进行下面的替换
    		$con1 = str_replace("\n", "
", $con); echo $con1; }else{ echo "file open error!"; } }else{ echo "file is not exist!"; } fclose($fp); */ /***********************第二种读取方式**************** $con = file_get_contents($file_path); $con1 = str_replace("\n", "
", $con); echo $con1; */ /***********************第三种读取方式************/ if(file_exists($file_path)){ if($fp = fopen($file_path,"r+")){ $buffer= 1024; //一边读,一边判断是都到文件的末尾 while(!feof($fp)){ $con = fread($fp, $buffer); echo "文件的内容是1111:
"; //注意:在默认情况下,我们得到的内容输出到网页后,是没有换行的 //不认\r\n 需要进行下面的替换 $con1 = str_replace("\n", "
", $con); echo $con1; } }else{ echo "file open error!"; } }else{ echo "file is not exist!"; } fclose($fp); //文件内容 $arr = parse_ini_file($file_path); echo "
";
   print_r($arr);
   echo "
";


写文件
        


拷贝一个文件



文件下载
        http://blog.csdn.net/sjin_1314/article/details/8981745
文件创建,删除,文件的创建,删除
";
    	}else{
    		echo "创建失败!
"; } }else{ echo "文件夹存在!
"; } */ /*********创建多级目录*****/ $dir_name="/var/jsh1/aaa/bbb/ccc"; if(!is_dir($dir_name)){ if(mkdir($dir_name,0777,true)){ echo "创建文件成功!
"; }else{ echo "创建失败!
"; } }else{ echo "文件夹存在!
"; } /*********删除文件夹********/ //如果文件夹下有文件,或者目录,均不能删除 if(rmdir("/var/jsh1/aaa/bbb/ccc")){ echo "删除文件夹Ok!
"; } /*************创建文件*********/ $file_name="/var/jsh1/1.txt"; if($fp = fopen($file_name,"w+")){ $buf="asd123123\n"; fwrite($fp, $buf); }else{ echo "file open error!"; } /***********删除文件******/ //2个方法 delete 和unlink if(is_file($file_name)){ if(unlink($file_name)){ echo "删除成功!
"; } }else{ echo "文件不存在!
"; }

•          文件上传
如果要上传文件,需要把
<formenctype="multipart/form-data"action="upLoad.php"name="myform"method="post">
Enctype  post 必须填写成上面内容:下面界面如下:

PHP自学之路------PHP文件编程_第1张图片

                采用前面讲解的Mvc模式,代码如下:

界面(V):





文件上传


    
文件上传
请填写用户名:
请简单介绍该文件:
请选择要上传的文件:

控制器(c)

";
    print_r($_POST);
    print_r($_FILES);
    echo "
"; //获取文件的大小 $file_size=$_FILES['myfile']['size']; if($file_size > 2*1024*1024){ echo "文件过大!,不能上传大于2M的文件
"; exit(1); } //获取文件的类型 $file_type = $_FILES['myfile']['type']; if($file_type!='image/jpg' && $file_type!='image/jpeg' ){ echo "文件类型只能是jpg的!
"; exit(1); } //判断是否上传成功 if(is_uploaded_file($_FILES['myfile']['tmp_name'])){ //把文件转存到指定的目录 /*注意: * 上传文件的大小,在php.ini文件中有说明,默认最大2M,可以自己设置 * * */ //我们给每个用户动态的创建一个文件夹 $user_path = "/var/myphp/file/".$username; //判断该用户是否存在文件夹 if(!file_exists($user_path)){ if(mkdir($user_path)){ echo "创建成功!
"; } } //$file_path=$user_path.$_FILES['myfile']['name']; $file_name=$_FILES['myfile']['name']; $file_path=$user_path."/".time().rand(1,1000).substr($file_name, strrpos($file_name, '.')); if(move_uploaded_file($_FILES['myfile']['tmp_name'], $file_path)){ echo "上传成功!
"; }else{ echo "上传失败2!
"; } }else{ echo "上传失败1!
"; } ?>

上传文件细节
1.        如果控制用户上传文件的大小<2M
2.        如果控制用户上传的文件类型
3.        如果防止用户图片覆盖问题
解决方法:
给每个用户创建一个文件夹(或者按照日期),将个人的文件保存的自己的文件夹里面
4.        如果防止同一用户文件名相同的问题
格式:路径.时间戳.文件后缀
$file_path=$user_path."/".time().rand(1,1000).substr($file_name,strrpos($file_name, '.'));

    参考资料:

   PHP文件上传后缀名与文件类型对照表 

文件编程到此结束,有深入的问题欢迎在下面指出!

你可能感兴趣的:(【走进PHP】,走进PHP的缤纷世界)