|
|
|
| Kак можно сделать скрипт который бы смог показывать сколько свободного места осталось на сервере? | |
|
|
|
|
|
|
|
для: cccp
(12.09.2005 в 12:35)
| | Если имеются соответствующие права доступа можно сделать всё. Не понятно какое место имеется ввиду. Общее место на сервере (с учётом монтированных разделов или нет) или сколько осталось до исчерпания квоты текущего пользователя? | |
|
|
|
|
|
|
|
для: cheops
(12.09.2005 в 12:49)
| | Вообше-то я хотел бы сделать так что бы показывало сколько место осталось из купленного (типа когда купил место на 200 МБ=100 процентов , использованно 50 процентов, и осталось 50процентов).
И что бы это высвечивось или в виде текста или ещё лучше в виде какой нибудь графической картинки.
Я тут нашол один скрипт, если хочеш покажу содержание, но он в 203 линии.
Я пробовал его установить, но чё-то не получилось. Может его вожможно и стоит усовершенствовать и кое что добавить и т.д.
А можно ли показать сколько осталось до продления подписки сайта? | |
|
|
|
|
|
|
|
для: cccp
(12.09.2005 в 14:18)
| | Обычно такие скрипты основаны на выполнении системных команд при помощи функции exec(), system() и т.п. Но многие хостинги их выполнение запрещают из соображений безопасности, поэтому могут быть проблемы. | |
|
|
|
|
|
|
|
для: cheops
(12.09.2005 в 19:40)
| | А есть такие которые не запрещают? Ведь если есть то это хана хостингу можно любой exe - шник закачать и запустить. | |
|
|
|
|
|
|
|
для: Евгений Петров
(12.09.2005 в 19:42)
| | Ну скорее хана виртуальному хосту и то при невнимательном программировании, для того, чтобы причинить вред самому хосту нужно будет ещё получить соответствующие права доступа, но если разрешено выполнение этих функций задача значитльно облегчается. | |
|
|
|
|
|
|
|
для: cheops
(12.09.2005 в 19:40)
| | А можно ли средствами ПХП определить сколько весит папка WWW? А потом уже сравнивать со 100% и т.д? | |
|
|
|
|
|
|
|
для: napTu3aH
(13.09.2005 в 12:14)
| |
<?
$dir = (".");
$f_size = 0;
size ($dir);
echo $f_size;
//---------------------------------------
function size ($dir)
{
global $f_size;
$dh = opendir ($dir);
while ($file = readdir($dh))
{
if($file!="." && $file!="..")
{
$fullpath = $dir."/".$file;
if(!is_dir ($fullpath))
{
$f_size = $f_size + filesize ($fullpath);
}
else
{
size ($fullpath);
}
}
}
closedir ($dh);
return ($f_size);
}
?>
Где-то нашел. подсчет в байтах. И переводи их на нужный процент.
|
| |
|
|
|
|
|
|
|
для: Андрюха.
(13.09.2005 в 12:50)
| | Привет !
Ну, пожалуста... помогите откоректировать этот скрипт, please !
<HTML>
<HEAD>
<TITLE>*Espace disque utilisé</TITLE>
</HEAD>
<BODY>
<B>
<?php
$HOSTNAME=" ";
$USERNAME=" ";
$PASSWORD=" ";
$DATABASE=" ";
$maxtaille = 1024 * 40000;
$byteUnits = array('Octets', 'Ko', 'Mo', 'Go');
function PMA_formatByteDown($value, $limes = 6, $comma = 0)
{
$dh = pow(10, $comma);
$li = pow(10, $limes);
$return_value = $value;
$unit = $GLOBALS['byteUnits'][0];
if ($value >= $li*1000000) {
$value = round($value/(1073741824/$dh))/$dh;
$unit = $GLOBALS['byteUnits'][3];
}
else if ($value >= $li*1000) {
$value = round($value/(1048576/$dh))/$dh;
$unit = $GLOBALS['byteUnits'][2];
}
else if ($value >= $li) {
$value = round($value/(1024/$dh))/$dh;
$unit = $GLOBALS['byteUnits'][1];
}
if ($unit != $GLOBALS['byteUnits'][0]) {
$return_value = number_format($value, $comma,
$GLOBALS['number_decimal_separator'],
$GLOBALS['number_thousands_separator']);
} else {
$return_value = number_format($value, 0,
$GLOBALS['number_decimal_separator'],
$GLOBALS['number_thousands_separator']);
}
return array($return_value, $unit);
} // end of the 'PMA_formatByteDown' function
function rep($nom)
{
$nbTab=str_repeat("|----",substr_count($nom,"/"));
$nom1=eregi_replace("^[.][a-z0-9/ ]*/",$nbTab,$nom);
echo "<TR><TD align=\"left\">$nom1</TD>";
global $nbre;
global $tailletot;
$d = dir($nom);
$tailleRep=0;
$nbRep=0;
while($entry=$d->read())
{
$taille = filesize($nom . "/" . $entry);
$type = filetype($nom . "/" . $entry);
if ($type != "dir")
{
$tailletot = $tailletot + $taille;
$nbre = $nbre + 1;
$tailleRep+=$taille;
$nbRep++;
}
}
$d = dir($nom);
$tailleRep=number_format($tailleRep,'0',',',' ');
$nbRep=number_format($nbRep,'0',',',' ');
echo "<TD align=\"right\">$tailleRep</TD>";
echo "<TD align=\"right\">$nbRep</TD></TR>";
while($entry=$d->read())
{
$taille = filesize($nom . "/" . $entry);
$type = filetype($nom . "/" . $entry);
if ($type == "dir")
{
if ($entry != "." AND $entry != "..")
{
$reps[]=$nom . "/" . $entry;
}
}
}
if (isset($reps)) {
natcasesort($reps);
foreach ($reps as $v) {
rep($v);
}
}
//rep($nom . "/" . $entry);
}
$db = mysql_connect($HOSTNAME, $USERNAME , $PASSWORD );
mysql_select_db($DATABASE,$db);
$local_query = "SHOW TABLE STATUS FROM $DATABASE";
$result = mysql_query($local_query);
$nbTables=0;
if ($result != FALSE && mysql_num_rows($result) > 0) {
while ($sts_tmp = mysql_fetch_array($result)) {
$tables[] = $sts_tmp;
$nbTables++;
}
mysql_free_result($result);
}
?>
</B><TABLE cellspacing="20">
<TR><TH align="center" width="50%">Base de données</TD>
<TH align="center" width="50%">Espace disque</TD></TR>
<TR><TD valign="top">
<TABLE>
<TR>
<TH align="center">Table</TH><TH align="right" width="80">Données</TH>
<TH align="right" width="80">Index</TH><TH align="right" width="80">Total</TH>
</TR>
<?php
$td=0;
$ti=0;
$s_tot=0;
while (list($keyname, $sts_data) = each($tables)) {
list($sd,$sd_u)=PMA_formatByteDown($sts_data['Data_length'],3,1);
$sd="$sd $sd_u";
$td+=$sts_data['Data_length'];
list($si,$si_u)=PMA_formatByteDown($sts_data['Index_length'],3,1);
$si="$si $si_u";
$ti+=$sts_data['Index_length'];
list($sum,$sum_u)=PMA_formatByteDown(
$sts_data['Data_length']+$sts_data['Index_length'],3,1);
$sum= "$sum $sum_u";;
echo "<TR><TD>".$sts_data['Name']."</TD><TD align='right'>$sd</TD>";
echo "<TD align='right'>$si</TD><TD align='right'>$sum</TD></TR>";
}
$ts=$td+$ti;
$s_tot=$ts;
list($td,$td_u)=PMA_formatByteDown($td,3,1);
$td="$td $td_u";
list($ti,$ti_u)=PMA_formatByteDown($ti,3,1);
$ti="$ti $ti_u";
list($ts,$ts_u)=PMA_formatByteDown($ts,3,1);
$ts="$ts $ts_u";
echo "<TR><TD>Total</TD><TD align='right'>$td</TD><TD align='right'>$ti</TD>";
echo "<TD align='right'>$ts</TD></TR>";
?>
</TABLE>
</TD><TD width="50%">
<TABLE cellpadding="0" cellspacing="0">
<pre>
<TABLE border="0" cellspacing="0">
<TR><TH align="center">Répertoire</TH>
<TH align="right" width="80">Taille</TH>
<TH align="right" width ="60">Fichiers</TH></TR>
<?php
$d = dir(".");
global $nbre;
global $tailletot;
$nbre = 0;
$tailletot = 0;
rep(".");
?>
</TABLE>
<?php
$temp1 = number_format($nbre,'0',',',' ');
$temp2 = number_format($tailletot,'0',',',' ');
echo "<BR>J'ai trouvé $temp1 fichiers d'une taille totale de $temp2 octets.<br>";
$temp1 = number_format($maxtaille - $tailletot,'0',',',' ');
echo "<BR>Il vous reste $temp1 octets.<BR><BR>";
$s_tot+=$tailletot;
$s_libre=$maxtaille - $s_tot;
list($s_tot,$s_tot_u)=PMA_formatByteDown($s_tot,3,1);
$s_tot="$s_tot $s_tot_u";
list($s_libre,$s_libre_u)=PMA_formatByteDown($s_libre,3,1);
$s_libre="$s_libre $s_libre_u";
?>
</TD></TR>
<TR><TD colspan="2" align="center">
<B>
Espace utilisé : <?php echo $s_tot; ?><BR>
Espace libre : <?php echo $s_libre; ?>
</B>
</TD></TR></TABLE>
</BODY>
</HTML>
|
Мне впринципе не нужно что бы он показывал названия папок и т.п.
Хотел бы оставить только функции что бы он показывал сколько нашол файлов $temp1 , в таком-то размере $temp2 и солько остаётя места $temp1 . Ну и оставить функции
и
Как бы это всё сделать?
Да ещё у меня постоянно написано :
Warning: filesize(): SAFE MODE Restriction in effect. The script is not allowed to access a file owned by another uid in disque dur.php on line 74
Warning: filetype(): SAFE MODE Restriction in effect. The script is not allowed to access a file owned by another uid in disque dur.php on line 75
Warning: filesize(): SAFE MODE Restriction in effect. The script is not allowed to access a file owned by another uid in disque dur.php on line 89
Warning: filetype(): SAFE MODE Restriction in effect. The script is not allowed to access a file owned by another uid in disque dur.php on line 90
|
Как это сделать невидемым? | |
|
|
|
|
|
|
|
для: cccp
(14.09.2005 в 01:00)
| | Поставьте подавление вывода сообщений перед функцией filesize
<?php
$taille = @filesize($nom . "/" . $entry);
$type = @filetype($nom . "/" . $entry);
?>
|
Подробности в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4389
PS Такие здоровые листинги следует прикреплять в виде файла. | |
|
|
|
|
|
|
|
для: cheops
(14.09.2005 в 02:07)
| | Спасибо огромое!
а как сделать остальное? | |
|
|
|