php中如何读取磁盘中的文件夹

php中如何读取磁盘中的文件夹,第1张

可以用scandir来读取给定路径下的文件以及文件夹,请注意该函数不会显示子文件夹下的文件;

如果要显示所有的文件或者文件夹,建议用 一个循环来遍历该路径,使用is_dir来判断是否是一个文件夹,is_file来判断是否是一个文件;

相信很多朋友们都有调试程序的经历 然而很多时候调试程序是痛苦而又漫长的过程;它不仅需要细心 更需要耐心 切忌心浮气躁 但是当找出问题并顺利解决它时 又会给人无比激动的喜悦 这里总结一下笔者在程序调试中的使用的原则 工具 以及方法 这里需要说明的是 某些原则性的东西 各种语言都是差不多的 而涉及到具体的工具和某些具体的调试方法 这里只涉及web开发方面的内容

总体原则

找出问题原因

程序需要调试 是因为程序有问题 而调试的第一目标是找到原因 常见调试方法 排除法: 当我们面对整个复杂的系统时 常常完全不知道问题出在什么地方;这个时候可以先将与问题不相关的地方排排除 逐渐缩小调试范围 独立模块法: 大部分程序都有模块结构 将可疑模块单独拿出来 模拟输入相应的 *** 作数据 看是否出现问题 比较法 如果程序或系统是基于某个平台时 可以先看看其他基于本平台的程序或系统 找出是平台问题还是本程序问题 很多时候这种方法是用来排除不成熟平台上的隐藏问题 对比法 对于自己实现的程序 可能已经有相应的开源的模块 可以把这些程序源码找出来 和自己的程序进行对比 这样不仅节省时间 还能借鉴别人的优秀之处

问题定位

问题原因的多种多样 可能这个时候你只能知道是什么样的问题 可能与什么相关 这个时候就需将出现的代码段找出来 而需要做到这一步 一般开发环境为我们提供很多实用工具 借助这些工具 可以一步一步地查看程序的输入和输出 根据每一步的输入输出 定位问题

有一部分很厉害的人 可以通过阅读代码 找到出现问题的地方 但是很多问题都是调试者自己因为疏忽造成的 而要通过这样方式去查找问题 几乎是不可能的 因为已经形成固定的思维定势

解决问题

找到问题的原因和相应代码行 解决它很多时候是一件比较简单的事 因为这些问题往往自己疏忽或者自己考虑不周 但是某些时候并不总是这样的 而是由于外部环境造成的 比如你的网站访问的人数增多 你当初没有考虑到这些数据压力 同时也没有考虑到高度并发性的问题 这个时候问题解决起来是你觉得比较棘手 而要解决这样的问题 不仅仅要专注程序 更要从系统架构方面着手 综合各方面的知识 进行全面的考虑

web开发常用调试工具

俗话说 工欲善其石 必先利其器 对于程序的调试 也必须借助外部工具 这里介绍几种在开发web程序中常常用到的工具

xdebug xhprof php性能调试工具 他们都是php的一种扩展 可以很方便的安装和配置 这两个工具主要是将你程序的内部运行状况 调用函数以一种简洁的方式告诉你 让你对程序在什么地方占用过多的资源 那些地方需要进行优化一目了然 顺便提一下 xdebug生成的profile文件一般借助winCacheGrid查看

firephp firbug 前者主要是php的调试工具 而后者是web开发必不可少的工具 它不仅能查看请求 还能调试js css

在ie下面可以使用>

<php

/

获取Mac地址,支持windows,linux

/

class GetMacAddr

{

var $return_array = array(); // 返回带有MAC地址的字串数组  

var $mac_addr;

function GetMacAddr($os_type)

{

switch (strtolower($os_type)) {

case "linux":

$this->forLinux();

break;

case "solaris":

break;

case "unix":

break;

case "aix":

break;

default:

$this->forWindows();

break;

}

$temp_array = array();

foreach ($this->return_array as $value) {

if (preg_match("/[0-9a-f][0-9a-f][:-]"  "[0-9a-f][0-9a-f][:-]"  "[0-9a-f][0-9a-f][:-]"  "[0-9a-f][0-9a-f][:-]"  "[0-9a-f][0-9a-f][:-]"  "[0-9a-f][0-9a-f]/i", $value, $temp_array)) {

$this->mac_addr = $temp_array[0];

break;

}

}

unset($temp_array);

return $this->mac_addr;

}

function forWindows()

{

@exec("ipconfig /all", $this->return_array);

if ($this->return_array)

return $this->return_array;

else {

$ipconfig = $_SERVER["WINDIR"]  "\system32\ipconfigexe";

if (is_file($ipconfig))

@exec($ipconfig  " /all", $this->return_array);

else

@exec($_SERVER["WINDIR"]  "\system\ipconfigexe /all", $this->return_array);

return $this->return_array;

}

}

function forLinux()

{

@exec("ifconfig -a", $this->return_array);

return $this->return_array;

}

}

//方法使用

$mac = new GetMacAddr(PHP_OS);

echo $mac->mac_addr;

>

PHP程序可以获取服务器的硬盘序列号、MAC地址这些数据,原理是调用外部命令检测结果,具体方法与系统的类型有关,但是肯定不可能获取浏览者的信息,因为PHP只在服务器上执行。

你的第二段代码获取MAC值,在Windows是成功的,如果你是需要在UNIX下使用,需要根据你的 *** 作系统类型来修改程序代码。

在linux你执行dmidecode就可以查看你机器的硬件配置信息了。

帮你找了一个这样的东东,不知道对你有没有帮助:PHP调用COM获得服务器硬件信息

function sys_windows() {

$objLocator = new COM("WbemScriptingSWbemLocator");

$wmi = $objLocator->ConnectServer();

$prop = $wmi->get("Win32_PnPEntity");

//CPU

$cpuinfo = GetWMI($wmi,"Win32_Processor", array("Name","L2CacheSize","NumberOfCores"));

$res['CPU个数'] = $cpuinfo[0]['NumberOfCores'];

if (null == $res['CPU个数']) {

$res['CPU个数'] = 1;

}

for ($i=0;$i<$res['cpu']['num'];$i++){

$res['CPU型号'] = $cpuinfo[0]['Name']"<br>";

$res['二级缓存'] = $cpuinfo[0]['L2CacheSize']"<br>";

}

// SYSINFO

$sysinfo = GetWMI($wmi,"Win32_OperatingSystem", array('LastBootUpTime','TotalVisibleMemorySize','FreePhysicalMemory','Caption','CSDVersion','SerialNumber','InstallDate'));

$res[' *** 作系统版本'] = $sysinfo[0]['Caption']" "$sysinfo[0]['CSDVersion'];

$res[' *** 作系统序列号'] = "{$sysinfo[0]['SerialNumber']} 于"date('Y年m月d日H:i:s',strtotime(substr($sysinfo[0]['InstallDate'],0,14)))"安装";

//UPTIME

$res['最后重启时间'] = $sysinfo[0]['LastBootUpTime'];

$sys_ticks = 36008 + time() - strtotime(substr($res['最后重启时间'],0,14));

$min = $sys_ticks / 60;

$hours = $min / 60;

$days = floor($hours / 24);

$hours = floor($hours - ($days 24));

$min = floor($min - ($days 60 24) - ($hours 60));

if ($days !== 0) $ress['day'] = $days"天";

if ($hours !== 0) $ress['hours'] = $hours"小时";

$res['最后重启时间'] = $ress['day']$ress['hours']$min"分钟";

//MEMORY

$res['物理内存'] = $sysinfo[0]['TotalVisibleMemorySize'];

$res['剩余内存'] = $sysinfo[0]['FreePhysicalMemory'];

$res['已使用内存'] = $res['物理内存'] - $res['剩余内存'];

$res['使用率'] = round($res['已使用内存'] / $res['物理内存']100,2);

$swapinfo = GetWMI($wmi,"Win32_PageFileUsage", array('AllocatedBaseSize','CurrentUsage'));

// TODO swp区获取

$res['交换分区'] = $swapinfo[0][AllocatedBaseSize];

$res['已经使用'] = $swapinfo[0][CurrentUsage];

$res['剩余内存'] = $res['swapTotal'] - $res['swapUsed'];

$res['使用率'] = (floatval($res['swapTotal'])!=0)round($res['swapUsed']/$res['swapTotal']100,2):0;

// LoadPercentage

$loadinfo = GetWMI($wmi,"Win32_Processor", array("LoadPercentage"));

$res['系统平均负载'] = $loadinfo[0]['LoadPercentage'];

return $res;

}

function GetWMI($wmi,$strClass, $strValue = array()) {

$arrData = array();

$objWEBM = $wmi->Get($strClass);

$arrProp = $objWEBM->Properties_;

$arrWEBMCol = $objWEBM->Instances_();

foreach($arrWEBMCol as $objItem) {

@reset($arrProp);

$arrInstance = array();

foreach($arrProp as $propItem) {

eval("\$value = \$objItem->" $propItem->Name ";");

if (empty($strValue)) {

$arrInstance[$propItem->Name] = trim($value);

} else {

if (in_array($propItem->Name, $strValue)) {

$arrInstance[$propItem->Name] = trim($value);

}

}

}

$arrData[] = $arrInstance;

}

return $arrData;

}

以上就是关于php中如何读取磁盘中的文件夹全部的内容,包括:php中如何读取磁盘中的文件夹、php程序调试方法总结、PHP怎么获取本地硬盘ID或者MAC地址,需要下载什么扩展吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9824491.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存