文件操作(20161115)

Posted 5572

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件操作(20161115)相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>

<!--<img src="/images/1101.jpg" />-->
<?php

//文件:文件和文件夹(目录)

//1.判断文件(是文件还是文件夹)
//var_dump(filetype("./aa")); 判断文件的类型, 返回dir 文件夹; 返回file 文件
//var_dump(is_file("./aa")); 判断是不是文件,返回true或false
//var_dump(is_dir("./aa"));  判断是不是文件夹,返回true或false
//echo date("Y-m-d H:i:s",fileatime("./aa.txt"));    fileatime 获取上次的访问时间,返回时间戳  如上代码返回格式化的时间戳
//filectime  获取上次的访问时间
//filemtime  获取上次的访问时间
//echo filesize("aa.txt");<br />  获取文件大小,返回的大小是KB(字节)
//var_dump(file_exists("./aaa.txt"));  判断文件是否存在,返回true或false

//2.文件路径
//根: / 
//php里面/代表根(是磁盘目录)
//var_dump(file_exists("/wamp/www/11.php"));
//网页里面/代表根(是www目录)
 
//echo $_SERVER[‘DOCUMENT_ROOT‘];  取服务器根路径
//echo basename("/wamp/www/11.php");  路径中获取文件名
//echo basename("/wamp/www/11.php",".php");  路径中获取文件名(去掉后缀)  
//echo dirname("/wamp/www/11.php");  路径中目录名(取上级目录的文件名)
//var_dump(pathinfo("/wamp/www/11.php"));  返回包含 dirname basename extension filename  数组
//echo realpath("./aa.txt");  返回规范化的绝对路径

//目录操作
//mkdir("./bb");创建一个文件夹(目录)出来
//rmdir("./bb");//只能删除 空 文件夹
//rename("./cc","./aa/dd");  rename("旧路径",新路径");    把文件名(路径)重命名,相当于把文件夹移动了,移动的同时可以重新命名
//var_dump(glob("./fenye/*.php"));    glob("./fenye/*.php")  返回该目录下所有.php文件数组  *搜索所有文件

/*$dir = opendir("./fenye");  打开目录资源  

readdir($dir)  每一次读一个 没有路径    返回目录的一个文件,读一次指针向下走,注意前两个点,一个点代表当前目录,两个点代表上级目录,遍历的时候要处理掉这两个点

while($f = readdir($dir))  
{
    echo $f."<br>";
}

closedir($dir);  关闭目录资源*/  

//给一个文件夹,读取文件夹里面文件的数量

/*echo ShuLiang("./fenye");
//给一个文件夹,返回该文件夹下所有文件的数量
function ShuLiang($filename)
{
    $sum=0;
    
    $dir = opendir($filename);
    while($f = readdir($dir))
    {
        if($f=="." || $f=="..")
        {
        }
        else
        {
            $lujing = $filename."/".$f;
            if(is_file($lujing))
            {
                $sum++;
            }
            else
            {
                $sum = $sum+ShuLiang($lujing);
            }
        }
    }
    closedir($dir);
    
    return $sum;
}*/


//文件操作
//touch("./cc.docx");  创建文件
//copy("./cc.txt","./fenye/cc.txt")  复制文件 copy("原文件的位置及文件名","复制文件的位置及文件名")
//unlink("./cc.txt");  删除文件

//echo file_get_contents("http://www.baidu.com");  读取文件内容(本地,远程) .txt .php .html   但是没有输出,可以把内容存到变量里面需要用echo输出
//file_put_contents("./ceshi.php","hello");  写入文件内容(覆盖)  因此要只读不写
//readfile("http://www.baidu.com");  读取文件并输出
//var_dump(file("http://www.baidu.com"));  将文件中每行数据放到数组,每一行是一个元素

//$f = fopen("./aa.txt","a");  fopen("文件名","打开方式")
//fwrite($f,"world");  写入内容  fwrite(文件资源,"写的内容")
//echo fgetc($f);  获取文件内容(一个字符一个字符读)
//echo fgets($f);  一次读一行
//echo fread($f,2);  读多长  fread(文件资源,读多少字节)
//feof($fp);  如果文件出错或到末尾返回true
//fclose($f);  文件打开之后哦一定要关闭,否则是没法操作的,如无法删除,重命名等

//给一个文件夹,删除该文件夹
ShanChu("./zhanneixin");
function ShanChu($filename)
{
    if(is_dir($filename))//判断是不是文件夹
    {        //是文件夹
        $dir = opendir($filename);//打开一个文件夹
        
        while($f = readdir($dir))//遍历整个文件夹的内容
        {
            if($f=="."||$f=="..")//把 . 和 .. 排除
            {
                
            }
            else
            {
                $fname = $filename."/".$f;//通过$f拼成一个完整的路径  前面加一个 $filename 中间拼一个 / 后面拼上文件名
                if(is_file($fname))//如果是文件直接删掉
                {
                    unlink($fname);
                }
                else  //是文件夹的话再调这个方法删除文件
                {
                    ShanChu($fname);
                }
            }
        }
        
        closedir($dir);        //把文件夹关掉
        rmdir($filename);   //最后只剩下文件夹,把文件夹删掉
    }
    else//是文件
    {
        unlink($filename);//删除文件
    }
}

//这里的删除是永远删掉,不是进回收站    主要用在程序对文件的管理

?>
</body>
</html>

 

以上是关于文件操作(20161115)的主要内容,如果未能解决你的问题,请参考以下文章

fopen中的mode(20161115)

PHP课程总结20161115

20161115 布局的练习

Java每日一题20161115

20161115

20161115