首页建站经验 ecshop站点目录和数据库大小补丁

ecshop站点目录和数据库大小补丁

PHP目前不提供获取目录总大小的标准函数,尽管这比获得磁盘总空间更为常见,虽然可以使用exec()或system()做系统级调用du,du命令将 获得一个文件或目录的磁盘使用情况,但出于安全…

PHP目前不提供获取目录总大小的标准函数,尽管这比获得磁盘总空间更为常见,虽然可以使用exec()或system()做系统级调用du,du命令将 获得一个文件或目录的磁盘使用情况,但出于安全原因,这些函数通常是禁用的。要获得站点目录大小,使用递归适合此项任务。本补丁可在ECSHOP后台查看 站点目录和数据库大小。

 

 一、/admin/index.php

$sys_info['socket'] = function_exists('fsockopen') ? $_LANG['yes'] : $_LANG['no'];

下面添加

/* 单位自动转换函数 */

function getRealSize($size)

{

$kb = 1024; // Kilobyte

$mb = 1024 * $kb; // Megabyte

$gb = 1024 * $mb; // Gigabyte

$tb = 1024 * $gb; // Terabyte

if($size < $kb)

{

return $size . ' B';

}

else if($size < $mb)

{

return round($size/$kb, 2) . ' KB';

}

else if($size < $gb)

{

return round($size/$mb, 2) . ' MB';

}

else if($size < $tb)

{

return round($size/$gb, 2) . ' GB';

}

else

{

return round($size/$tb, 2) . ' TB';

}

}

/* 站点目录大小 */

function getDirSize($dir)

{

$sizeResult = 0;

$handle = opendir($dir);

while (false !== ($FolderOrFile = readdir($handle)))

{

if($FolderOrFile != '.'&& $FolderOrFile != '..')

{

if(is_dir("$dir/$FolderOrFile"))

{

$sizeResult += getDirSize("$dir/$FolderOrFile");

}

else

{

$sizeResult += filesize("$dir/$FolderOrFile");

}

}

}

closedir($handle);

return $sizeResult;

}

$curStr = dirname(__FILE__);

$subStr = strrchr($curStr, '//');

$siteDir = substr($curStr, 0, strlen($curStr)-strlen($subStr));

$disk_size = getRealSize(getDirSize($siteDir));

/* 数据库大小 */

$ret = $db ->query("SHOW TABLE STATUS LIKE '" . mysql_like_quote($ecs->prefix) . "%'");

$row = array();

$mysql_size = 0;

while ($row = $db->fetchRow($ret))

{

$mysql_size += $row['Data_length'];

}

$mysql_size = getRealSize($mysql_size);

unset($ret);

$smarty->assign('disk_size', $disk_size);

$smarty->assign('mysql_size', $mysql_size);

二、/admin/templates/start.htm

{$lang.php_version}

{$sys_info.php_ver}

{$lang.mysql_version}

{$sys_info.mysql_ver}

下面添加
{$lang.disk_size} {$disk_size} {$lang.mysql_size} {$mysql_size}

三、/languages/zh_cn/admin/index.php中添加

$_LANG['disk_size'] = '站点目录大小:';

$_LANG['mysql_size'] = '数据库大小:';

本文来自网络,不代表1号站长-站长学院|资讯交流平台立场。转载请注明出处: https://www.1cn.cc/jianzhan/jingyan/16366.html
上一篇Ecshop数据表ecs_category操作频率导致网站访问慢的解决方法
下一篇 修复ECSHOP后台商品品牌搜索0记录的BUG
admin

作者: admin

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部