filesize返回的是以字节为单位的数据也可以使之处理数字
1.文件的属性信息获取
首先文件具有类型,在linux下边,有block(块设备,如磁盘分区、CD-ROM)、char(以字符为输入的设备,如键盘、打印机)、dir(目录类型,目录也是文件的一种)、fifo(命名管道,解释是将信息从一个进程传到另一个进程)、file(普通的文件)、link(链接,类似win下边的快捷方式)、unknow(未知类型)7大类,在win下边,只有3类:file、dir和unknown。Linux渣表示一定要好好搞一下Linux-_-,人家完全是为Linux而生。
关于类型的获取有这么几个函数:filetype:获取类型; is_file:判断为是否是正常文件; is_link:判断是否是链接。
关于属性的获取有这么几个函数:
file_exists:判断文件或目录是否存在;
filesize:获取文件大小;
is_readable、is_writable、is_executable :是否可读、可写、可执行;
filectime、filemtime、fileatime:获取文件的创建时间(create)、修改时间(modify)、访问时间(access),均返回时间戳;
stat:获取文件的一些基本信息,返回一个索引与关联混合数组。
比如,可以这样判断文件类型:
复制代码
<php
function getFileType($path){ // 获取文件类型
switch(filetype($path)){
case 'file': return 'ordinary file';
case 'dir': return 'directory';
case 'block': return 'block device file';
case 'char': return 'transfer device base on char';
case 'fifo': return 'named pipes';
case 'link': return 'symbol link';
default: return 'unknown type';
}
}
复制代码
filesize返回的是以字节为单位的数据,如果是大文件数字或很大,可以对数字先处理一下,代码如下
复制代码
<?php
// 处理文件大小
function getSize($path = '', $size = -1){
if($path !== null && $size == -1){ // 只传路径就计算大小,也可以使之只处理数字
$size = filesize($path);
}
if($size >= pow(2, 40)){
return round($size/pow(2, 40), 2).'TB';
}
else if($size >= pow(2, 30)){
return round($size/pow(2, 30), 2).'GB';
}
else if($size >= pow(2, 20)){
return round($size/pow(2, 20), 2).'MB';
}
else if($size >= pow(2, 10)){
return round($size/pow(2, 10), 2).'KB';
}
else{
return round($size, 2).'Byte';
}
}
复制代码
现在综合来获取一下文件信息,代码如下:
复制代码
<?php
function getFileInfo($path){
if(!file_exists($path)){ // 判断文件是否存在
echo 'file not exists!<br>';
return;
}
if(is_file($path)){ // 是文件,打印基础文件名
echo basename($path).' is a file<br>';
}
if(is_dir($path)){ // 是目录 ,返回目录
echo dirname($path).' is a directory<br>';
}
echo 'file type:'.getFileType($path).'<br>'; // 获取文件类型
echo 'file size:'.getSize($path).'<br>'; // 获取文件大小
if(is_readable($path)){ // 是否可读
echo basename($path).' is readable<br>';
}
if(is_writeable($path)){ // 是否可写
echo basename($path).' is writeable<br>';
}
if(is_executable($path)){ // 是否可执行
echo basename($path).' is executable<br>';
}
// touch函数可以修改这些时间
echo 'file create time: '.date('Y-m-d H:i:s', filectime($path)).'<br>'; // 创建时间
echo 'file modify time: '.date('Y-m-d H:i:s', filemtime($path)).'<br>'; // 修改时间
echo 'last access time: '.date('Y-m-d H:i:s', fileatime($path)).'<br>'; // 上次访问时间
echo 'file owner: '.fileowner($path).'<br>'; // 文件拥有者
echo 'file permission: '.substr(sprintf('%o', (fileperms($path))), -42881064151).'<br>'; // 文件权限,八进制输出
echo 'file group: '.filegroup($path).'<br>'; // 文件所在的组
}
filesize返回的是以字节为单位的数据也可以使之处理数字的更多相关文章
- ZeroMQ接口函数之 :zmq_msg_size - 以字节为单位返回消息内容的大小
ZeroMQ 官方地址 :http://api.zeromq.org/4-2:zmq_msg_size zmq_msg_size(3) ØMQ Manual - ØMQ/3.2.5 Name zmq ...
- 鸿蒙内核源码分析(字符设备篇) | 字节为单位读写的设备 | 百篇博客分析OpenHarmony源码 | v67.01
百篇博客系列篇.本篇为: v67.xx 鸿蒙内核源码分析(字符设备篇) | 字节为单位读写的设备 | 51.c.h.o 文件系统相关篇为: v62.xx 鸿蒙内核源码分析(文件概念篇) | 为什么说一 ...
- UTF-8以字节为单位对Unicode进行编码
UTF-8以字节为单位对Unicode进行编码.从Unicode到UTF-8的编码方式如下: Unicode编码(16进制) UTF-8 字节流(二进制) 000000 - 00007F 0xxxxx ...
- 在AJAX里 使用【 XML 】 返回数据类型 实现简单的下拉菜单数据
在AJAX里 使用XML返回数据类型 实现简单的下拉菜单数据 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN ...
- 在AJAX里 使用【 JSON 】 返回数据类型 实现简单的下拉菜单数据
在AJAX里 使用JSON返回数据类型 实现简单的下拉菜单数据 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E ...
- 【mybatis】mybatis执行一个update方法,返回值为1,但是数据库中数据并未更新,粘贴sql语句直接在数据库执行,等待好久报错:Lock wait timeout exceeded; try restarting transaction
今天使用mybatis和jpa的过程中,发现这样一个问题: mybatis执行一个update方法,返回值为1,但是数据库中数据并未更新,粘贴sql语句直接在数据库执行,等待好久报错:Lock wai ...
- 字节跳动流式数据集成基于Flink Checkpoint两阶段提交的实践和优化
背景 字节跳动开发套件数据集成团队(DTS ,Data Transmission Service)在字节跳动内基于 Flink 实现了流批一体的数据集成服务.其中一个典型场景是 Kafka/ByteM ...
- ThinkPHP之中的getField、Find、select、返回数据类型详解(ThinkPHP之中所有数据读取了)
小李子:用于演示作用的数据库表:customers 官方解读: “ 读取数据集其实就是获取数据表中的多行记录(以及关联数据),使用select方法 ” $customers=D('customers' ...
- Mysql数据数据[字节、长度、数据范围]一览表
1.mysql有哪些数据类型: 主要包括以下五大类: 整数类型:BIT.BOOL.TINY INT.SMALL INT.MEDIUM INT. INT. BIG INT 浮点数类型:FLOAT.DOU ...
随机推荐
- apache AllowEncodedSlashes 允许URL中对路径分隔符进行编码
2013年11月29日 10:35:32 情景: 你想通过在当前的URL中记录来源页面的URL,以便处理完请求后再跳转回来源页: http://www.example1.com/refer/http: ...
- hdu 1425 sort 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1425 常规的方法是对输入的数从大到小进行排序(可以用sort或qsort),然后输出前m大的数. 不过 ...
- codeforces A. IQ Test 解题报告
题目链接:http://codeforces.com/problemset/problem/328/A 一开始单纯地直接判断给出的序列是等差还是等比,连这一句“You should also prin ...
- 二、JavaScript语言--JS基础--JavaScript进阶篇--事件响应
1.什么是事件 JavaScript 创建动态页面.事件是可以被 JavaScript 侦测到的行为. 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件. 比如说,当用户 ...
- C#学习笔记---修饰符,this关键字和static关键字
1. C#中类的修饰符: public 表示不限制对该类的访问 protected 表示只能从所在类和所在类派生的子类进行访问 private 只有其所在类才能访问 internal 只有对 ...
- Linux下如何查找可执行文件
Linux下的可执行文件 Linux下如何查找可执行文件,作为一个Linux小菜刚刚有了这个问题, 在windows中,可以通过后缀名判断是否是可执行文件,比如.exe,.bat等是可执行文件,但是在 ...
- THINKPHP 默认模板路径替换
APP_PATH // 当前项目目录APP_NAME // 当前项目名称 ACTION_NAME // 当前操作名称 CACHE_PATH // 项目模版缓存目录 CONFIG_PATH //项目配置 ...
- Introduction to Computer Networks(网络架构与七层参考模式)
Network Connectivity 1. Important terminologies 1) Link 设备连接的连线.Link本身既可以是有线的,也可以是无线的. 2) Node 设备.电脑 ...
- matlab中的ishghandle
ishghandle True for Handle Graphics object handles. ishghandle(H) returns an array that contains 1's ...
- 详细剖析电脑hosts文件的作用和修改
提到电脑系统中的hosts文件,如果不是太熟悉的话,还真是闻所未闻,一是由于系统的hosts文件为系统属性,在系统默认设置下,我们根本无法看到它的存在,而是由于身处系统深层文件夹内,我们一般也无法察觉 ...