php查找文件大小的原理是遍历目录然后再利用filesize来计算文件大小,然后我们再加一判断就可以了,下面整理了一些例子。
我们先来看遍历目录
<?php function tree($directory) { $mydir = dir($directory); echo "<ul>n"; while ($file = $mydir->read()) { if ((is_dir("$directory/$file")) AND ($file != ".") AND ($file != "..")) { echo "<li><font color=" //ff00cc"><b>$file</b></font></li>n"; tree("$directory/$file"); } else echo "<li>$file</li>n"; } echo "</ul>n"; $mydir->close(); } //开始运行 echo "<h2 id="目录为粉红色">目录为粉红色</h2><br>n"; tree("./phprm"); ?>
这样只是把所有目录下的文件显示了,但我们要判断大小需加上round(filesize($cpath)/1024,1)函数了,这样我们获取大小之后就可以显示文件大小了。
<?php header("Content-Type:text/html;charset=gbk"); set_time_limit(0); $dirpath = dirname(__FILE__); //bytes $limitByte = 1024 * 110; //这里改成你合适的查找文件最低大小,单位为字节。1024*100表示 1024*100字节,即100KB $arrRes = $arrTmp = array(); showMaxFile($dirpath, $limitByte); function showMaxFile($path, $limitByte) { global $arrRes; $h = opendir($path); if ($h) { while (false !== ($file = readdir($h))) { if ($file != '.' && $file != '..') { $cpath = $path . '/' . $file; if (is_dir($cpath)) { showMaxFile($cpath, $limitByte); } else { if (filesize($cpath) > $limitByte) { $arrRes[] = array( $cpath, round(filesize($cpath) / 1024, 1) ); //echo "<p>{$cpath}<br />".(filesize($cpath) / 1024)."KB</p>"; } } } } } closedir($h); } foreach ($arrRes as $k => $v) { $arrTmp[$k] = $v[1]; } arsort($arrTmp); foreach ($arrTmp as $k => $v) { echo "<p>" . str_replace($dirpath, '', $arrRes[$k][0]) . "<br />" . $arrRes[$k][1] . "</p>"; } ?>
最后给大家附一个字节计算函数,这个可以转换
<?php //字节数转换成带单位的 /* 原理是利用对数求出欲转换的字节数是1024的几次方。 * 其实就是利用对数的特性确定单位。 */ function size2mb($size, $digits = 2) { //digits,要保留几位小数 $unit = array( '', 'K', 'M', 'G', 'T', 'P' ); //单位数组,是必须1024进制依次的哦。 $base = 1024; //对数的基数 $i = floor(log($size, $base)); //字节数对1024取对数,值向下取整。 return round($size / pow($base, $i) , $digits) . ' ' . $unit[$i] . 'B'; } ?>

一、Iterator和foreach的区别多态差别(foreach底层就是Iterator)Iterator是一个接口类型,他不关心集合或者数组的类型;for和foreach都需要先知道集合的类型,甚至是集合内元素的类型;1.为啥说foreach底层就是Iterator编写的代码:反编译代码:二、foreach与iterator时remove的区别先来看阿里java开发手册但1的时候不会报错,2的时候就会报错(java.util.ConcurrentModificationException)首

php判断foreach循环到第几个的步骤:1、创建一个“$fruits”的数组;2、创建一个计数器变量“$counter”初始值为0;3、使用“foreach”循环遍历数组,并在循环体中增加计数器变量的值,再输出每个元素和它们的索引;4、在“foreach”循环体外输出计数器变量的值,以确认循环到了第几个元素。

这篇文章将为大家详细讲解有关PHP返回一个键值翻转后的数组,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP键值翻转数组键值翻转是一种对数组进行的操作,它将数组中的键和值进行交换,生成一个新的数组,其中原始键作为值,原始值作为键。实现方法在php中,可以通过以下方法对数组进行键值翻转:array_flip()函数:array_flip()函数专门用于键值翻转操作。它接收一个数组作为参数,并返回一个新的数组,其中键和值已交换。$original_array=[

这篇文章将为大家详细讲解有关PHP返回数组中的当前元素,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。获取PHP数组中的当前元素php为访问和操作数组提供了多种方法,其中包括获取数组中的当前元素。以下介绍几种常用的技术:1.current()函数current()函数返回数组内部指针当前指向的元素。指针最初指向数组的第一个元素。使用以下语法:$currentElement=current($array);2.key()函数key()函数返回数组内部指针当前指向元

区别:1、for通过索引来循环遍历每一个数据元素,而forEach通过JS底层程序来循环遍历数组的数据元素;2、for可以通过break关键词来终止循环的执行,而forEach不可以;3、for可以通过控制循环变量的数值来控制循环的执行,而forEach不行;4、for在循环外可以调用循环变量,而forEach在循环外不能调用循环变量;5、for的执行效率要高于forEach。

如何使用forEach函数遍历对象的属性?在JavaScript中,我们经常需要对对象的属性进行遍历操作。如果你想使用一种简洁的方法来遍历对象的属性,forEach函数是一个非常好的选择。在本文中,我们将介绍如何使用forEach函数来遍历对象的属性,并提供具体的代码示例。首先,让我们来了解一下forEach函数的基本用法。forEach函数是Java

在PHP中,foreach语句被广泛用于对数组和对象进行遍历。在进行循环的过程中,我们有时需要获取当前循环到第几个元素。本文将为大家介绍怎样在PHP foreach循环中获取当前元素的索引值。

foreach的意思为“循环遍历”,是基于php编程环境下的语法,主要用于循环遍历数组,PHP5后还可以遍历对象。foreach语句遍历数组与数组下标无关,且可以用于不连续的索引数组和以字符串为下标的关联数组,语法“foreach ($array as [$key =>] $value){语句块;}”。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 Linux新版
SublimeText3 Linux最新版

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),