FreeBSD 系统参数探测 cpu,内存
//取得参数值 FreeBSD
function get_key($keyName)
{
return do_command('sysctl', "-n $keyName");
}
// 确定执行文件位置 FreeBSD
function find_command($commandName)
{
$path = array('/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin');
foreach($path as $p)
{
if (@is_executable("$p/$commandName")) return "$p/$commandName";
}
return false;
}
function sys_freebsd()
{
//CPU
if (false === ($res['cpu']['num'] = get_key("hw.ncpu"))) return false;
$res['cpu']['detail'] = get_key("hw.model");
//LOAD AVG
if (false === ($res['loadAvg'] = get_key("vm.loadavg"))) return false;
$res['loadAvg'] = str_replace("{", "", $res['loadAvg']);
$res['loadAvg'] = str_replace("}", "", $res['loadAvg']);
//UPTIME
if (false === ($buf = get_key("kern.boottime"))) return false;
$buf = explode(' ', $buf);
$sys_ticks = time() - intval($buf[3]);
$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) $res['uptime'] = $days."天";
if ($hours !== 0) $res['uptime'] .= $hours."小时";
$res['uptime'] .= $min."分钟";
//MEMORY
if (false === ($buf = get_key("hw.physmem"))) return false;
$res['memTotal'] = round($buf/1024/1024, 2);
$buf = explode(" ", do_command("vmstat", ""));
$buf = explode(" ", trim($buf[2]));
$res['memFree'] = round($buf[5]/1024, 2);
$res['memUsed'] = ($res['memTotal']-$res['memFree']);
$res['memPercent'] = (floatval($res['memTotal'])!=0)?round($res['memUsed']/$res['memTotal']*100,2):0;
$buf = explode(" ", do_command("swapinfo", "-k"));
$buf = $buf[1];
preg_match_all("/([0-9]+)s+([0-9]+)s+([0-9]+)/", $buf, $bufArr);
$res['swapTotal'] = round($bufArr[1][0]/1024, 2);
$res['swapUsed'] = round($bufArr[2][0]/1024, 2);
$res['swapFree'] = round($bufArr[3][0]/1024, 2);
$res['swapPercent'] = (floatval($res['swapTotal'])!=0)?round($res['swapUsed']/$res['swapTotal']*100,2):0;
return $res;
}
//针探使用方法
sys_freebsd();
代码如下 | 复制代码 |
class download var $file_name = "hdwiki.zip";//下载来的文件名称 var $save_path = "./www.111cn.net";//下载到本地的文件路径 var $localfile;//下载到本地文件的路径和名称 var $warning;//警告信息 var $redown=0;//是否重新下载
function setfilename($file_name) function setsavepath($save_path) function setredown($redown) function download($url, $redown = 0, $save_path = 0, $file_name = 0) //下载文件到本地 function downloadfile() $this->localfile = $this->save_path."/".$this->file_name; if (!$this->checkurl()){ if (file_exists($this->localfile)){ } //打开远程文件 $fp = fopen($this->url, "rb"); //打开本地文件 $sp = fopen($this->localfile, "wb"); //下载远程文件 //echo "正在下载远程文件,请等待"; while (!feof($fp)){ } fwrite($sp, $tmpfile); |
if($_POST[submit]){
checkusername($_POST[username]);
if($_SESSION["code"]==$_POST[code])
{
$username= str_replace(" ","",$_POST[username]);
$password=md5($_POST[password].ALL_PS);
$sql="INSERT INTO `member`.`user_list` (`uid`, `m_id`, `username`, `password`) VALUES (NULL, '$_POST[select]', '$username','$password' )";
mysql教程_query($sql);
echo "注册成功";
}
else
{
echo "验证码错误"."<br>";
session_destroy();
}
}
function checkusername($username)
{
$sql2 = "select uid from user_list where username='".mysql_escape_string($username)."'";
$result = mysql_query($sql2) or die ('ERROR: '.mysql_error());
if(mysql_num_rows($result)>0)
{
echo "该用户名已经存在,请更换!";
exit();
}
else{
echo "<script> location.href='reg.php'</script>";
}
}
?>
<LINK href="common.css教程" type=text/css rel=stylesheet>
<form action="" method="post">
用户名:<input type="text" name="username" style="height:23px" /><br>
密 码:<input type="password" name="password" style="height:23px" /><br>
职 位:
<select name="select" size="1" style="height:23px" / >
<option value="1">1</option>
<option value="2">2</option>
</select>
<br/>
验证码:<input type="code" name="code" size="10" style="height:23px" />
<img src="imgcode.php">
<br><br>
<input type="submit" name="submit" value="注册"/>
</form>
function listDirFiles()
{
// 设置目录
$dirs = './';
// 申明文件夹数组与文件数组
$aFolders = array() ;
$aFiles = array() ;
$ocfolder = opendir( $dirs ) ;//则该函数返回一个目录流,否则返回 false 以及一个 error。可以通过在函数名前加上 "@" 来隐藏 error 的输出。用法opendir(path,context)
while ( $sFile = readdir( $ocfolder ) ) // readdir() 函数返回由 opendir() 打开的目录句柄中的条目 语法:readdir(dir_stream)
{
if ( $sFile != '.' && $sFile != '..' )
{
if ( is_dir( $dirs . $sFile ) ) // 判断是否为目录,是返回ture否就返回false;
$aFolders[] = 'dirs:' . $sFile . '<br />' ;
else
{
$fsize = @filesize( $dirs . $sFile ) ; //filesize() 函数返回指定文件的大小。 语法:filesize(filename)
if ( !$fsize ) {
$fsize = 0 ;
}
if ( $fsize > 0 )
{
$fsize = round( $fsize / 1024 ) ;//round() 函数对浮点数进行四舍五入。 round(x,prec)
if ( $fsize < 1 ) $fsize = 1 ;
}
$aFiles[] = '文件名:' .$sFile . '文件大小=' . $fsize . 'KB<br />' ;
}
}
}
// 对目录进行自然排序
natcasesort( $aFolders ) ;//对数组自然排序 natcasesort(array)
foreach ( $aFolders as $sFolder )
{
echo $sFolder ;
}
// 对文件进行自然排序
natcasesort( $aFiles ) ; // 自然1-9,a-z排序natcasesort(array);
foreach ( $aFiles as $sFiles )
{
echo $sFiles ;
}
}
/*
调用方法当前有目录
dirs:1
dirs:www.111cn.net
文件名:1.php
文件名:2.php
*/
listDirFiles();
/*
输出结果为
dirs:1
dirs:www.111cn.net
文件名:1.php文件大小=1KB
文件名:2.php文件大小=2KB
用到函数解析
opendir
则该函数返回一个目录流,否则返回 false 以及一个 error。可以通过在函数名前加上 "@" 来隐藏 error 的输出。用法opendir(path,context)
is_dir
判断是否为目录,是返回ture否就返回false;
readdir
readdir() 函数返回由 opendir() 打开的目录句柄中的条目 语法:readdir(dir_stream)
filesize()
函数返回指定文件的大小。 语法:filesize(filename)
natcasesort(array)
natcasesort() 函数实现了“自然排序”,即数字从 1 到 9 的排序方法,字母从 a 到 z 的排序方法,短者优先,该函数不区分大小写。数组的索引与单元值保持关联
function ListFolders()
{
// 设置一个路径
$dir = "./";
// 设置一个存放文件件的数组
$aDir = array() ;
$oCurrentdir = opendir( $dir ) ; //打开目录
while ( $sFile = readdir( $oCurrentdir ) ) //读取当前目录所有子目录
{
if ( $sFile != '.' && $sFile != '..' && is_dir( $dir . $sFile ) )//判断是否为根目录
$aFolders[] = '目录:' .$sFile. '<br />' ;//输也目录
}
closedir( $oCurrentdir ) ;//判断刚才用opendir打开的目录
// Open the "Folders" node.
natcasesort( $aFolders ) ; //对数组进行自然排序不区分大小写的自然顺序算法对给定数组中的元素排序即数字从 1 到 9 的排序方法,字母从 a 到 z 的排序方法,短者优先
foreach ( $aFolders as $sFolder )
{
echo $sFolder ;
}
}
/*
测试,我们在当前目录有二个子目录
目录:1
目录:www.111cn.net
*/
getFolders();
/*
运行后得到结果为
目录:1
目录:www.111cn.net
常用函数解析:
array() 数据申明,可以用直接赋值 array(1,2,3,4);
opendir() 打开目录,opendir() 函数打开一个目录句柄,可由 closedir(),readdir() 和 rewinddir() 使用,若成功,则该函数返回一个目录流,否则返回 false 以及一个 error。可以通过在函数名前加上 "@" 来隐藏 error 的输出。
readdir 读取目录
cosedir判断目录
natcasesort() 函数用不区分大小写的自然顺序算法对给定数组中的元素排序。natcasesort() 函数实现了“自然排序”,即数字从 1 到 9 的排序方法,字母从 a 到 z 的排序方法,短者优先,该函数不区分大小写。数组的索引与单元值保持关联。如果成功,则该函数返回 TRUE,否则返回 FALSE。
本站整理与原创转载注明来自www.111cn.net
相关文章
- 这篇文章主要给大家介绍了关于Nest.js参数校验和自定义返回数据格式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-28
- 这篇文章主要为大家详细解析了BootStrap栅格系统、表单样式与按钮样式源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-01-23
- 这篇文章主要介绍了浅谈redis key值内存消耗以及性能影响,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-07
- 这篇文章主要介绍了Vue 组件复用多次自定义参数操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-27
- 这篇文章主要为大家详细介绍了python实现学生通讯录管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-25
- 这篇文章主要介绍了详解分析MySQL8.0的内存消耗,帮助大家更好的理解和学习使用MySQL,感兴趣的朋友可以了解下...2021-03-23
- 这篇文章主要介绍了解决Springboot get请求是参数过长的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-17
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
废话不多说了,直接给大家贴代码了。<?php class test{} $a1 = null; $a2 = ""; //$a3 = $a4 = 0; $a5 = '0'; $a6 = false; $a7 = array(); //var $a8; $a9 = new test(); for ($i=1; $i <=9 ; $i++) {...2015-11-24- 这篇文章主要介绍了java正则表达式判断前端参数修改表中另一个字段的值,需要的朋友可以参考下...2021-05-07
- mysql安装成功后有几个默认的配置模板,列表如下: my-huge.cnf : 用于高端产品服务器,包括1到2GB RAM,主要运行mysql my-innodb-heavy-4G.ini : 用于只有innodb的安装,最多有4GB RAM,支持大的查询和低流量 my-large.cnf : 用于...2015-03-15
- 这篇文章主要介绍了C#泛型的类型参数约束的相关资料,文中讲解非常细致,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下...2020-07-31
- 这篇文章主要给大家介绍了关于C#中out参数、ref参数与值参数的用法及区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 这篇文章主要介绍了解决使用OpenCV中的imread()内存报错问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
- 如今高要求的分布式系统的建造者遇到了不能完全由传统的面向对象编程(OOP)模型解决的挑战,但这可以从Actor模型中获益。...2021-05-20
处理@PathVariable注解允许参数为空、允许不传参数的问题
这篇文章主要介绍了处理@PathVariable注解允许参数为空、允许不传参数的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-23- 这篇文章主要介绍了Java线程池中的各个参数如何合理设置操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-06-19
- 这篇文章主要介绍了详解Java后端优雅验证参数合法性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-18
- 这篇文章主要介绍了vue+axios全局添加请求头和参数操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-24
- 这篇文章主要介绍了SpringBoot接口接收json参数解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-19
- 这篇文章主要介绍了pytorch 实现冻结部分参数训练另一部分,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-27