• 技术文章 >后端开发 >php教程

    php学习基础-文件系统(一) 文件处理,文件权限

    2016-06-23 13:57:47原创531
    一、PHP系统文件处理

    /*  PHP文件系统处理 *	所有文件处理都是使用系统函数完成的。 *	是基于Linux/Unix系统为模型 * *  	文件系统处理的作用: *  		1. 所有的项目离不开文件处理 *  		2. 可以用文件长时间保存数据 *  		3. 建立缓存, 服务器中文件操作 * *  	文件处理 *		1. 文件类型 *			以Linux为模型的, 在Windows只能获取file, dir或unknow 三种类型 *			在Linux/Unix下, block, char, dir, fifo, file, link, unknown和种型 *			block :块设置文件,磁盘分区,软驱, cd-rom等 *			char: 字符设备,I/O 以字符为单位, 键盘,打印机等 *			dir: 目录也是文件的一种 *			fifo:  *			file: *			link:  *			unknown	 * * 			filetype("目录或文件名") * * 			is_array(); * 			is_int(); * 			is_string(); * 			is_null; * 			is_bool(); * 					is_dir -- 判断给定文件名是否是一个目录		is_executable -- 判断给定文件名是否可执行		is_file -- 判断给定文件名是否为一个正常的文件		is_link -- 判断给定文件名是否为一个符号连接		is_readable -- 判断给定文件名是否可读		is_uploaded_file -- 判断文件是否是通过 HTTP POST 上传的		is_writable -- 判断给定的文件名是否可写		is_writeable -- is_writable() 的别名 *			 * *		2. 文件的属性 *			file_exists(); *			filesize(); *			is_readable(); *			is_writeable(); *			filectime(); *			filemtime(); *			fileactime(); *			stat(); * *		3. 和文件路径相关的函数 *			 *			相对路径:相对于当前目录的上级和下级目录 *				.  当前目录 *				.. 上一级目录 * *				./php/apache/index.php *				php/apahce/index.php *				login.php *				./login.php *				../images/tpl/logo.gif *			 * *			路径分隔符号 *				linux/Unix    "//m.sbmmt.com/m/" *				windows       "\" * *				DIRECTORY_SEPARATOR  为不同平台,在Windows \ Linux / * *				不管是什么操作系统PHP的目录分割符号都支技 / (Linux) * *				在PHP和Apache配置文件中如果需要指定目录,也使用/作为目录符号 * *			绝对路径: *				/ 根路径 * *				/images/index.php * *				指的操作系统的根 *				指的是存放网站的文档根目录 *				 *                              分情况 * *                              如果是在服务器中执行(通过PHP文件处理函数执行)路径 则 “根”指的就是操作系统的根 *				如果程序是下载的客户端,再访问服务器中的文件时,只有通过Apache访问,“根”也就指的是文档根目录 * *				http://www.xsphp.com/logo.gif * * *			basename(url) *			dirname(url) *			pathinfo(url) *		 * * *		 *		4. 文件的操作(创建文件,删除文件,移动文件) *		5. 文件的打开与关闭(读文件中的内容, 向文件中写内容) *		6. 文件内部移动指针 *		7. 文件的锁定一些机制处理 *	 * *  	目录的处理 *  		1. 目录的遍历 *  		2. 目录的创建 *  		3. 目录的删除 *  		4. 目录的复制 *		5. 统计目录大小 * * *  	文件上传和下载 *  		1. 上传 *  		2. 下载 * * */


    二、PHP文件属性函数实例

    date_default_timezone_set("PRC");	function getFilePro($fileName){		if(!file_exists($fileName)){			echo "文件或目录{$fileName} 不存在
    "; return; }else{ echo "文件的类型".filetype($fileName)."
    "; } if(is_file($fileName)){ echo "这是一个文件
    "; echo "文件的大小为".getFileSize(filesize($fileName))."
    "; } if(is_dir($fileName)){ echo "这是一个目录
    "; } if(is_readable($fileName)){ echo "这个文件可以读
    "; } if(is_writable($fileName)){ echo "这个文件可以写
    "; } if(is_executable($fileName)){ echo "这个文件可以执行
    "; } echo "文件的创建时间:".date("Y-m-d H:i:s",filectime($fileName))."
    "; echo "文件的修改时间:".date("Y-m-d H:i:s",filemtime($fileName))."
    "; echo "文件的最后访问时间:".date("Y-m-d H:i:s",fileatime($fileName))."
    "; } function getFileSize($size){ $dw="Byte"; if($size >= pow(2, 40)){ $size=round($size/pow(2, 40), 2); $dw="TB"; }else if($size >= pow(2, 30)){ $size=round($size/pow(2, 30), 2); $dw="GB"; }else if($size >= pow(2, 20)){ $size=round($size/pow(2, 20), 2); $dw="MB"; }else if($size >= pow(2, 10)){ $size=round($size/pow(2, 10), 2); $dw="KB"; }else { $dw="Bytes"; } return $size.$dw; } getFilePro("demo.txt"); getFilePro("hello");


    三、PHP获取文件状态函数

    date_default_timezone_set("PRC");	echo '
    ';	print_r(stat("demo.txt"));	echo '
    ';


    四、使用文件系统缓存数据方案

    $cache=5;                   //缓存时间$cachefile="cache.txt";      //缓存的文件if(file_exists($cachefile) && (time()-$cache) < filemtime($cachefile)) {   echo file_get_contents($cachefile); //如果在缓存的10秒内,就从缓存文件中获取数据		}else{		file_put_contents($cachefile, date("Y-m-d H:i:s", time()));}


    五、文件路径相关函数实例

    $url1="./aaa/bbb/index.php";	echo basename($url1)."
    "; //文件名称 echo dirname(dirname($url1))."
    "; //父级目录 echo dirname($url1)."
    "; //文件目录echo '
    ';       //文件路径信息  print_r($path=pathinfo($url3));  echo '
    '; echo $path["extension"];

    六、文件系统权限相关的函数实例

      创建文件 touch("文件名")  删除文件 unlink("文件路径");  移动文件 为文件重新命名 rename("当前文件路径", “目录为文件路径”)  复制文件 copy("当前", “目标”); 			  一定要有PHP执行这个文件权限, Apache, 一个用户    和权限设计有关的函数    ls -l  或 ll  _rwxrwxrwx   777  _ 类型 _文件  d 表示是目录  l  b     rwx 表这个文件的拥有者  r读 w写 x执行      rwx 表这个文件的拥有者所在的组  r读 w写 x执行  rwx 其它用户对这个为文件的权限  r读 w写 x执行		r 4		w 2		x 1 		7 7 7  4+2+1  4+2+1 4+2+1			rwx   rwx  rwx				644			4+2   4   4			rw_  r__ r__		754			  chmod u=rwx,g=rw,o=x  chmod 777  demo.php  chmod 644  demo.html  chown  mysql demo.php  chgrp  apache demo.php  chgrp -- 改变文件所属的组  chmod -- 改变文件模式  chown -- 改变文件的所有者  filegroup -- 取得文件的组  fileowner -- 取得文件的所有者

























    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:权限 php 系统 学习 文件
    上一篇:有关php的基础问题 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 你知道如何用PHP实现多进程吗• 求解:phpcms模板怎样转码?该怎么解决• php 之 cookie 跟 session 简单解读(笔记)• php怎的快捷知道某个函数在哪个文件用过• 下拉联动有关问题
    1/1

    PHP中文网