PHP——文件操作
自己写的:
<!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>
<?php
echo filetype("../1.txt");//输入路径,判断文件类型 文件——》file 文件夹(目录)——》dir "./"当前路径
echo filetype("../code");
//操作服务器所在磁盘的文件
is_dir(); //判断是否是目录
is_file();//判断是否是文件
fileatime();//文件上次访问的时间(时间戳) date()
filectime();//文件的创建时间
filemtime();//文件的修改时间
filesize();//文件的大小(返回字节)filesize/1024(kb)
file_exists();//文件是否存在 //文件的路径
//当前路径——不写或者"./" 一般不用"\"
//上一级文件夹——用"../"
//根目录——"/":1、php代表的是磁盘的根 2、如果用html写代表的是服务器的根
$_SERVER['DOCUMENT_ROOT'];//找网站的根目录(服务器的根)
basename();//输入路径返回文件名
dirname();//输入路径返回目录名(文件所在的文件夹)
pathinfo();//返回路径的所有信息,返回类型为数组
realpath();//相对路径转换为绝对路径 //目录的操作
mkdir();//新建目录(创建文件夹)
rmdir();//删除目录:只能删除空的文件夹,当目录中存在文件是无法删除
rename();//移动目录文件(重命名)
glob("*");//遍历当前目录 返回数组——获取该目录下所有文件 "*.php"——筛选
//用目录资源操作目录
opendir();//打开目录资源
closedir();//关闭目录资源(操作完之后要关闭)
readdir();//有指针效果"."——当前目录,".."——上一级目录
rewinddir();//指针返回第一个 //打开目录资源
$dir = opendir("./code");
//读文件,每读一条指针向下走一个,注意第一个是.代表当前目录,第二个是..代表上一级目录
while($filename = readdir($dir))
{
echo $filename."<br>";
}
echo "***************************";
rewinddir($dir);
while($filename = readdir($dir))
{
echo $filename."<br>";
}
//关闭资源
closedir($dir); //文件操作
//文件整体操作
touch();//创建文件
copy();//复制文件
unlink();//删除文件
file_get_contents();//读取文件内容
file_put_contents();//写入文件内容,会把原来文件内容覆盖
readfile();//直接读取并且显示出来
file();//将文件内容返回到数组里面 //文件内容的操作
fopen();//打开文件资源
fclose();//关闭文件资源
fwrite();//写入内容
fgetc();//读取文件内容,有指针效果,一次读一个字符
feof();//读到末尾或者出错时返回true
fgets();//读取文件内容,一次读一行
fread();//读取内容,可以控制读取的长度 $fp = fopen("./2.txt","r"); //打开文件资源 fwrite($fp,"bbbbbbbbbbb");//写入内容 while(!feof($fp)) //当读取出错或者读到末尾返回true
{
echo fgetc($fp); //读取内容,一个字符一个字符读,读完指针下移
} while(!feof($fp))
{
echo fgets($fp)."<br>"; //读取内容,每次读一行
} ?>
</body>
</html>
比较完整的
<!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>
<?php //echo filetype("./1.jpg"); //判断文件类型 文件:file
//echo filetype("./code"); //目录 dir //echo is_dir("code"); //判断是不是目录
//echo is_file("1.jpg"); //判断是不是文件 //echo date("Y-m-d H:i:s",fileatime("1.jpg")); //获取上次的访问时间
//echo date("Y-m-d H:i:s",filectime("1.jpg")); //文件的创建时间
//echo date("Y-m-d H:i:s",filemtime("1.jpg")); //文件的修改时间
//echo filesize("1.jpg")/1024; //文件的大小
//echo file_exists("2.jpg"); //判断文件是否存在 //echo filetype("/wamp"); //当前路径用./或不写;上以及用../; /*正斜杠/代表根目录。如果是在php语言里写/则代表磁盘的根,如果是在网页的页面里面使用/则代表服务器的根*/ //echo "<img src='/wenjiancaozuo/1.jpg' />"; //echo $_SERVER['DOCUMENT_ROOT']; //找网站的根目录 //echo basename("./code/db.inc.php",".php"); //从路径中返回文件名
//echo dirname("./code/db.inc.php");//从路径中返回目录名
//print_r(pathinfo("./code/db.inc.php"));//返回路径的所有信息,返回类型是数组
//echo realpath("1.jpg"); //将相对路径转换为绝对路径 /*目录操作*/
//mkdir("./suiji"); //创建文件夹(目录) //rmdir("./suiji"); //删除目录,只能删除空的文件夹 //rename("./name","./code/suiji"); //移动或重命名文件夹 //print_r(glob("./code/*.php")); //获取该目录下所有文件,可以筛选 /* //打开目录资源
$dir = opendir("./code");
//读文件,每读一条指针向下走一个,注意第一个是.代表当前目录,第二个是..代表上一级目录
while($filename = readdir($dir))
{
echo $filename."<br>";
}
echo "***************************";
rewinddir($dir);
while($filename = readdir($dir))
{
echo $filename."<br>";
}
//关闭资源
closedir($dir);*/ /*文件操作*/
//touch("./2.txt"); //创建文件
//copy("./2.txt","./code/2.txt"); //复制文件
//unlink("./code/2.txt"); //删除文件
//echo file_get_contents("http://www.baidu.com"); //读取文件
//file_put_contents("./2.txt","hello world"); //写入内容,会覆盖
//readfile("http://www.baidu.com"); //读文件内容直接输出
//$attr = file("./2.txt"); //读文件内容,然后返回每一行的数组 $fp = fopen("./2.txt","r"); //打开文件资源 //fwrite($fp,"bbbbbbbbbbb");//写入内容 /*while(!feof($fp)) //当读取出错或者读到末尾返回true
{
echo fgetc($fp); //读取内容,一个字符一个字符读,读完指针下移
}*/ /*while(!feof($fp))
{
echo fgets($fp)."<br>"; //读取内容,每次读一行
}*/ //echo fread($fp,100); //读取内容,可以控制读取多少个字符 fclose($fp); ?>
</body>
</html>
文件上传和文件下载
<!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>
<form action="chuli.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" value="上传"/>
</form> <a href="../DotNET课程大纲.xlsx">下载文件</a>
</body>
</html>
chuli.php
<!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>
<?php /*echo $_FILES["file"]["name"]."<br>";
echo $_FILES["file"]["type"]."<br>";
echo $_FILES["file"]["size"]."<br>";
echo $_FILES["file"]["tmp_name"]."<br>";
echo $_FILES["file"]["error"];*/ //1.判断是否出错
if($_FILES["file"]["error"])
{
echo "文件上传出错!";
}
else
{ //2.加限制条件
if(($_FILES["file"]["type"]=="image/jpeg" || $_FILES["file"]["type"]=="image/jpg") && $_FILES["file"]["size"]<=102400)
{ //3.造一个文件的存储路径
$str = date("YmdHisms",time());
$filename = "./images/".$str.$_FILES["file"]["name"];
//4.判断文件是否存在
if(file_exists($filename))
{
echo "该文件已经存在!";
}
else
{
//5.移动文件
move_uploaded_file($_FILES["file"]["tmp_name"],iconv("UTF-8","gb2312",$filename));
echo "该文件成功上传,保存在了:".$filename;
}
}
else
{
echo "文件不符合要求!";
}
} ?> </body>
</html>
统计一个目录下的文件和目录的个数
<?php
$dirn = 0; //目录数
$filen = 0; //文件数 //用来统计一个目录下的文件和目录的个数
function getdirnum($file) {
global $dirn;
global $filen; $dir = opendir($file); while($filename = readdir($dir)) {
if($filename!="." && $filename !="..") {
$filename = $file."/".$filename; if(is_dir($filename)) {
$dirn++;
getdirnum($filename); //递归,就可以查看所有子目录
} else {
$filen++;
}
} } closedir($dir); } getdirnum("./code"); echo "目录数为:{$dirn}<br>";
echo "文件数为:{$filen}<br>";
统计一个目录下大小
<?php
//用来统计一个目录下大小
function dirsize($file) {
$size = 0;
$dir = opendir($file); while($filename = readdir($dir)) {
if($filename!="." && $filename !="..") {
$filename = $file."/".$filename; if(is_dir($filename)) {
//使用递归
$size += dirsize($filename);
} else {
$size += filesize($filename);
}
} } closedir($dir); return $size;
} echo "code目录大小为:".(dirsize("./code")/pow(1024,1))."KB<br>";
删除目录,文件及内容
<?php
function deldir($dirname) {
if(!file_exists($dirname)) {
die("文件夹不存在!");
}
//如果是文件,直接删除即可
if(is_file($dirname)) {
unlink($dirname);
} $dir = opendir($dirname); while($filename = readdir($dir)) {
if($filename !="." && $filename!="..") { //*******
$filename = $dirname."/".$filename; if(is_dir($filename) ) {
deldir($filename);
}else {
unlink($filename);
} }
} closedir($dir);
rmdir($dirname);
} deldir("./code");
PHP——文件操作的更多相关文章
- 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档
.net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...
- 野路子出身PowerShell 文件操作实用功能
本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...
- Node基础篇(文件操作)
文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...
- 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)
========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...
- SQL Server附加数据库报错:无法打开物理文件,操作系统错误5
问题描述: 附加数据时,提示无法打开物理文件,操作系统错误5.如下图: 问题原因:可能是文件访问权限方面的问题. 解决方案:找到数据库的mdf和ldf文件,赋予权限即可.如下图: 找到mdf ...
- 通过cmd完成FTP上传文件操作
一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...
- Linux文件操作的主要接口API及相关细节
操作系统API: 1.API是一些函数,这些函数是由linux系统提供支持的,由应用层程序来使用,应用层程序通过调用API来调用操作系统中的各种功能,来干活 文件操作的一般步骤: 1.在linux系统 ...
- C语言的fopen函数(文件操作/读写)
头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为: FILE * fopen(const char * path, c ...
- Python的文件操作
文件操作,顾名思义,就是对磁盘上已经存在的文件进行各种操作,文本文件就是读和写. 1. 文件的操作流程 (1)打开文件,得到文件句柄并赋值给一个变量 (2)通过句柄对文件进行操作 (3)关闭文件 现有 ...
- python 文件操作(转)
python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目 ...
随机推荐
- 关于listview,scrollview显示模糊边缘的设置
朋友们有时可能在开发中遇到这样的莫名其妙的问题,listview或scrollview滑动时上边和下边会出现两条模糊的边缘,有时会影响到我们app的视觉效果,我们怎么去掉这两条模糊的边缘呢?很简单,一 ...
- Android媒体扫描详细解析之二(MediaScanner & MediaProvider)
上篇blog说到了经过对文件夹进行扫描如果后缀符合系统设定的一些格式,那么就会进行文件内容扫描下面我们紧接着STEP 14中的 status_t StagefrightMediaScanner::pr ...
- Linux环境下c语言静态链接库和动态链接库创建和使用
库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀. 面对比一下两者: 静态链接库:当要使用时,连接器会找出程序所需的函数,然后将它们拷贝到执行文件,由于这种拷贝是完整的,所以一旦连接成功, ...
- 算法笔记_135:格子取数问题(Java)
目录 1 问题描述 2 解决方案 1 问题描述 有n*n个格子,每个格子里有正数或者0,从最左上角往最右下角走,只能向下和向右走,一共走两次(即从左上角往右下角走两趟),把所有经过的格子里的数加起 ...
- windows程序崩溃生成dump文件
第一种: 通过任务管理器:这种适用在程序挂了(crash)的时候进程还未退出,比如我运行程序,出现了下面的错: 此时打开任务管理器,右击相应进程,点击"Create Dump File“: ...
- Eclipse/Myeclipse中查看和调试JDK源代码的方法
看过这篇文章后,实践写的 http://blog.csdn.net/qq_27857857/article/details/71250401 一共做了以下几部: 第一步: 第二步: 一直next,到第 ...
- XHTML学习书籍
http://baike.baidu.com/view/15906.htm XHTML学习书籍 可扩展超文本置标语言(eXtensible HyperText Markup Language,XH ...
- [HNOI2002]营业额统计 Splay tree
Splay tree入门题,学好代码风格,学习HH大牛的,传送门.. #include <functional> #include <algorithm> #include & ...
- DirectX.DirectSound声音播放资料
参考:https://msdn.microsoft.com/en-us/library/windows/desktop/bb318665(v=vs.85).aspx Microsoft DirectS ...
- Redis全方位讲解--哨兵模式(Sentinel模式)(转载)
前言 当按照上一篇<redis主从复制>部署好之后,我们会想,一旦redis的master出现了宕机,并且我们并没有及时发现,这时候就可能会出现数据丢失或程序无法运行.此时,redis的哨 ...