Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: скрипт сколько свободного места осталось на сервере
 
 автор: cccp   (12.09.2005 в 12:35)   письмо автору
 
 

Kак можно сделать скрипт который бы смог показывать сколько свободного места осталось на сервере?

   
 
 автор: cheops   (12.09.2005 в 12:49)   письмо автору
 
   для: cccp   (12.09.2005 в 12:35)
 

Если имеются соответствующие права доступа можно сделать всё. Не понятно какое место имеется ввиду. Общее место на сервере (с учётом монтированных разделов или нет) или сколько осталось до исчерпания квоты текущего пользователя?

   
 
 автор: cccp   (12.09.2005 в 14:18)   письмо автору
 
   для: cheops   (12.09.2005 в 12:49)
 

Вообше-то я хотел бы сделать так что бы показывало сколько место осталось из купленного (типа когда купил место на 200 МБ=100 процентов , использованно 50 процентов, и осталось 50процентов).
И что бы это высвечивось или в виде текста или ещё лучше в виде какой нибудь графической картинки.

Я тут нашол один скрипт, если хочеш покажу содержание, но он в 203 линии.
Я пробовал его установить, но чё-то не получилось. Может его вожможно и стоит усовершенствовать и кое что добавить и т.д.

А можно ли показать сколько осталось до продления подписки сайта?

   
 
 автор: cheops   (12.09.2005 в 19:40)   письмо автору
 
   для: cccp   (12.09.2005 в 14:18)
 

Обычно такие скрипты основаны на выполнении системных команд при помощи функции exec(), system() и т.п. Но многие хостинги их выполнение запрещают из соображений безопасности, поэтому могут быть проблемы.

   
 
 автор: Евгений Петров   (12.09.2005 в 19:42)   письмо автору
 
   для: cheops   (12.09.2005 в 19:40)
 

А есть такие которые не запрещают? Ведь если есть то это хана хостингу можно любой exe - шник закачать и запустить.

   
 
 автор: cheops   (12.09.2005 в 19:54)   письмо автору
 
   для: Евгений Петров   (12.09.2005 в 19:42)
 

Ну скорее хана виртуальному хосту и то при невнимательном программировании, для того, чтобы причинить вред самому хосту нужно будет ещё получить соответствующие права доступа, но если разрешено выполнение этих функций задача значитльно облегчается.

   
 
 автор: napTu3aH   (13.09.2005 в 12:14)   письмо автору
 
   для: cheops   (12.09.2005 в 19:40)
 

А можно ли средствами ПХП определить сколько весит папка WWW? А потом уже сравнивать со 100% и т.д?

   
 
 автор: Андрюха.   (13.09.2005 в 12:50)   письмо автору
 
   для: 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);
    }
?>
Где-то нашел. подсчет в байтах. И переводи их на нужный процент.

   
 
 автор: cccp   (14.09.2005 в 01:00)   письмо автору
 
   для: Андрюха.   (13.09.2005 в 12:50)
 

Привет !
Ну, пожалуста... помогите откоректировать этот скрипт, please !











<HTML>
<HEAD>
<TITLE>*Espace disque utilis&eacute;</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($value0
            
$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&eacute;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&eacute;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&eacute;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&#233; $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&eacute; : <?php echo $s_tot?><BR>
Espace libre : <?php echo $s_libre?>
</B>
</TD></TR></TABLE>
</BODY>
</HTML>



Мне впринципе не нужно что бы он показывал названия папок и т.п.
Хотел бы оставить только функции что бы он показывал сколько нашол файлов $temp1 , в таком-то размере $temp2 и солько остаётя места $temp1 . Ну и оставить функции
 <?php echo $s_tot?>


и

<?php echo $s_libre?>


Как бы это всё сделать?

Да ещё у меня постоянно написано :


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



Как это сделать невидемым?

   
 
 автор: cheops   (14.09.2005 в 02:07)   письмо автору
 
   для: 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 Такие здоровые листинги следует прикреплять в виде файла.

   
 
 автор: cccp   (14.09.2005 в 12:07)   письмо автору
 
   для: cheops   (14.09.2005 в 02:07)
 

Спасибо огромое!
а как сделать остальное?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования