|
|
|
| $d = dir
Я установил один скрипт который читает с помощью функции $d = dir репертуары, количество и вес. Но так как я его поставил в одну из папок, то за место того что бы он находил 225 файлов, он теперь видет 7.
Как сделать так что бы он читая репертуары вернулся на папку выше и лиш тогда стал читать? | |
|
|
|
|
|
|
|
для: cccp
(16.09.2005 в 14:26)
| | Не очень понятно, вы используете класс dir? Не могли бы вы привести пример, как вы его используете? | |
|
|
|
|
|
|
|
для: cheops
(16.09.2005 в 19:19)
| |
<?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);
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',',',' ');
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);
}
?>
|
| |
|
|
|
|
|
|
|
для: cccp
(16.09.2005 в 22:33)
| | Но ведь функция rep(), в которой используется dir нигде не вызывается?! | |
|
|
|
|
|
|
|
для: cheops
(17.09.2005 в 01:12)
| | а тут?
<?php
$d = dir(".");
global $nbre;
global $tailletot;
$nbre = 0;
$tailletot = 0;
rep(".");
?>
|
<?php
$temp1 = number_format($nbre,'0',',',' ');
$temp2 = number_format($tailletot,'0',',',' ');
echo "<div align='left'><img src='../images/pie-chart_view.gif'> <font color='#CC0000'>Trouvé </font>$temp1<font color='#CC0000'> fichiers<BR>d'une taille totale de </font>$temp2<font color='#CC0000'> octets.<hr></font></div>";
$temp1 = number_format($maxtaille - $tailletot,'0',',',' ');
echo "<div align='left'><img src='../images/pie-chart-libre.gif'> <font color='#CC0000'>Il vous reste </font>$temp1<font color='#CC0000'> octets.<BR><hr></font></div>";
$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";
?>
|
| |
|
|
|
|
|
|
|
для: cccp
(17.09.2005 в 10:00)
| | У вас в функции rep() имеет участок кода
<?php
if ($type != "dir")
{
$tailletot = $tailletot + $taille;
$nbre = $nbre + 1;
$tailleRep+=$taille;
$nbRep++;
}
?>
|
Т.е. вы учитываете только директории? А вообще каково назначение функций и какаую задачу они решают? | |
|
|
|
|
|
|
|
для: cheops
(17.09.2005 в 13:02)
| | Привет!
Извеняюсь что не смог сразу ответить.
Назначение этой функции и задача проста. Это скрипт который читает размер использованного и свободного места твоего сайта на сервере.
Только вот я всё-же не пойму как-же мне сделать что бы он читал с самого корня?
Спасибо за подмогу, товарищи! | |
|
|
|
|
|
|
|
для: cccp
(20.09.2005 в 12:29)
| | Нужно указать корневую директорию / - только скорее всего у вас прав доступа не будет, чтобы залезть во все директории сервера. | |
|
|
|
|
|
|
|
для: cheops
(20.09.2005 в 17:31)
| | Хочу попробовать.
Только как?
Вот так?
<?php
if ($type != "../../dir")
{
$tailletot = $tailletot + $taille;
$nbre = $nbre + 1;
$tailleRep+=$taille;
$nbRep++;
}
?>
|
| |
|
|
|
|
|
|
|
для: cccp
(20.09.2005 в 19:33)
| | Хм... а что это за блок и откуда? | |
|
|
|
|
|
|
|
для: cheops
(21.09.2005 в 00:49)
| | Объястняю...
Этот скрипт я поставил в одну из папок на сервере , а не в корень.
И поэтому он стал мне показывать не правельное количество файлов, соответственно и их размер, размер свободного места и использованного.
А когда он стоял в корне сервера моего сайта, то всё было ОК. | |
|
|
|
|
|
|
|
для: cccp
(21.09.2005 в 06:07)
| | Там где у вас if($type!='../../dir') {} Нельзя использовать функцию dir? TRUE если дир. существует, FALSE если такой диретктории нету. | |
|
|
|
|
|
|
|
для: Lenux
(21.09.2005 в 07:36)
| | Ну и как-же сделать....непойму??? | |
|
|
|
|
|
|
|
для: cccp
(21.09.2005 в 13:11)
| | Ну-товарищи ....
Помогите пожалуста. | |
|
|
|
|
|
|
|
для: cccp
(23.09.2005 в 11:41)
| | please....! | |
|
|
|
|
|
|
|
для: cccp
(25.09.2005 в 02:18)
| | Поместил в поддиректорию виртуального хоста. Заработало правильно, когда изменил rep(".") на rep("../")
<?
$d = dir(".");
global $nbre;
global $tailletot;
$nbre = 0;
$tailletot = 0;
rep("../");
?>
|
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(25.09.2005 в 07:10)
| | Спасибо ОГРОМНОЕ !!! | |
|
|
|