PHP文件系统-文件路径操作和权限
一、和文件路径的先关函数
1、相对路径:相对于当前目录的上级和下级目录
. 当前目录 .. 上一级目录
./php/apache/index.php
php/apahce/index.php
login.php
./login.php
../images/tpl/logo.gif
路径分隔符号 linux/Unix "/" windows "\"
DIRECTORY_SEPARATOR 为不同平台,在Windows \ Linux / 不管是什么操作系统PHP的目录分割符号都支技 / (Linux)
在PHP和Apache配置文件中如果需要指定目录,也使用/作为目录符号
2、绝对路径: / 根路径
/images/index.php
到底是指的操作系统的根 还是 指的是存放网站的文档根目录???
分情况
如果是在服务器中执行(通过PHP文件处理函数执行)路径 则 “根”指的就是操作系统的根
如果程序是下载的客户端,再访问服务器中的文件时,只有通过Apache访问,“根”也就指的是文档根目录
http://www.xsphp.com/logo.gif
3、几个文件操作路径
basename(url) 输出文件路径的文件名
dirname(url) 输出文件的路径
pathinfo(url) 数组输出所有的文件路径信息,路径、完整文件名、后缀名、文件名(不包括后缀)
二、文件的操作相关的函数
1、 创建文件 touch("文件名")
删除文件 unlink("文件路径");
移动文件 为文件重新命名 rename("当前文件路径", “目录为文件路径”)
复制文件 copy("当前", “目标”);
能进行操作的前提:一定要有PHP执行这个文件权限, PHP是Apache用户赋予的权限, 所以是操作Apache的用户
2、和权限设计有关的函数
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 -- 取得文件的所有者
三、相关练习
1、文件操作路径函数
$url1="./aaa/bbb/index.php";
$url2="../www/yyy/login.rar";
$url3="c:/appserv/www/demo.html";
$url4="http://localhost/yyy/www.gif";
echo basename($url1)."<br>";
echo basename($url2)."<br>";
echo basename($url3)."<br>";
echo basename($url4)."<br>";
echo dirname(dirname($url1))."<br>";
echo dirname($url2)."<br>";
echo dirname($url3)."<br>";
echo dirname($url4)."<br>";
echo '<pre>';
print_r($path=pathinfo($url3));
echo '</pre>';
echo $path["extension"]
2、文件操作相关函数
// touch("./php.apahce"); //创建一个为文件
// unlink("C:/AppServ/www/xsphp/apache.php"); //删除文件
// rename("./test.txt", "d:/test2.txt"); //移动文件或者重命名
// copy("cache.txt", "./cache5.txt"); //复制文件
chmod("/aaa/index.php", "755") //修改文件的权限