[php] dirsize script doet raar

Pagina: 1
Acties:
  • 104 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • tombo_inc
  • Registratie: December 2004
  • Laatst online: 04-02-2022
beste mensen,
ik heb voor een wat groter programma van mij een functie geschreven om de totale grootte van een dir te berekenen. het script werkt prima maar nu is het zo dat als ik het script refresh dat dat de uitkomst steeds wat meer wordt (uitkomst word gegeven in bytes). hoe kan dit?

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition


Acties:
  • 0 Henk 'm!

  • MaZo
  • Registratie: Mei 2002
  • Niet online
Het zou handig zijn als je wat code post.

Acties:
  • 0 Henk 'm!

  • tombo_inc
  • Registratie: December 2004
  • Laatst online: 04-02-2022
mijn code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function get_dir_size($path) {
    $thedir = $path;
    if(is_dir("".$thedir."")) {
        $dirhandle = opendir($thedir);
        $totalsize = 0;
        while(false !== ($files = readdir($dirhandle))) {
            if(($files != ".") && ($files != "..")) {
                if(is_dir("".$thedir."/".$files."")) {
                    $newdir = "".$thedir."/".$files."";
                    $totalsize += get_dir_size("".$newdir."");
                }
                elseif(is_file("".$thedir."/".$files."")) {
                    $totalsize += filesize("".$thedir."/".$files."");
                }
            }
        }
        closedir($dirhandle);
        //echo("$totalsize<br>");
        return $totalsize;
    }
    else {return false;}
}
$size = get_dir_size("C:\windows");
echo("$size");

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition


Acties:
  • 0 Henk 'm!

  • muba
  • Registratie: April 2002
  • Laatst online: 19-10-2013

muba

Prince of Persia!

Begin je wel steeds met tellen met 0?
Ik zie het zo voor me dat je vergeet de variable te resetten ofzo :)

Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea


Acties:
  • 0 Henk 'm!

Verwijderd

offtopic:
Bovendien is het nogal een beetje loos om een lege string te concatten:
[code]
echo "".$blaat."";
[/code]

Waarom je dat op die manier doet is mij een raadsel :?

Acties:
  • 0 Henk 'm!

  • tombo_inc
  • Registratie: December 2004
  • Laatst online: 04-02-2022
@muba ja dat doe ik net voor de loop met $totalsize=0;

@quist ja ik snap wat je bedoelt maar dat ben ik nou eenmaal gewend om te doen :P

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 19:57

Kees

Serveradmin / BOFH / DoC
probeer eens een andere dir dan windows, zodat je ook precies weet wat eruit moet komen.
de windows dir wil namelijk wel eens veranderen als je tegelijkertijd windows draait.

Maak een dir (bijv test) zet daarin 2 bestanden + 2 dirs, en in die dirs al dan niet nog wat bestanden en test dat eens?

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Tombo_inc schreef op zondag 19 december 2004 @ 15:11:
@quist ja ik snap wat je bedoelt maar dat ben ik nou eenmaal gewend om te doen :P
Dat is geen reden om het te blijven gebruiken, het levert niets extra's op en is gewoon lelijk. Als je gewend bent om elke dag een stropdas om te hebben voor je werk, dan wil dat toch ook niet zeggen dat dat lekker zit? :P

De oplossing voor je probleem zit trouwens zeer waarschijnlijk in wat Kees zegt, de Windows map verandert gewoon wel eens (internetten -> temporary internet files (in Win9x), enz).

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • tombo_inc
  • Registratie: December 2004
  • Laatst online: 04-02-2022
bedankt allemaal, het werkt nu. ik had het script ook al getest op de dir waar mijn webserver in staat, maar dat is hetzelfde princiepe als de windows map. omdat daar ook software instaat die aan het draaien is. stom dat ik er zelf niet opgekomen was en nogmaals bedankt :D _/-\o_

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition


Acties:
  • 0 Henk 'm!

  • MJV
  • Registratie: Mei 2003
  • Laatst online: 22:50

MJV

Moet dit:
PHP:
1
if(($files != ".") && ($files != "..")) {


Niet dit zijn?
PHP:
1
if(($files !== ".") && ($files !== "..")) {

[ Voor 22% gewijzigd door MJV op 19-12-2004 16:12 . Reden: typo ]


Acties:
  • 0 Henk 'm!

Verwijderd

DutchBlood schreef op zondag 19 december 2004 @ 15:44:
Moet dit:
PHP:
1
if(($files != ".") && ($files != "..")) {


Niet diet zijn?
PHP:
1
if(($files !== ".") && ($files !== "..")) {
nee

Acties:
  • 0 Henk 'm!

  • mrFoce
  • Registratie: Augustus 2004
  • Laatst online: 09-09 17:18
Tombo_inc schreef op zondag 19 december 2004 @ 14:46:
beste mensen,
ik heb voor een wat groter programma van mij een functie geschreven om de totale grootte van een dir te berekenen. het script werkt prima maar nu is het zo dat als ik het script refresh dat dat de uitkomst steeds wat meer wordt (uitkomst word gegeven in bytes). hoe kan dit?
hehehe, Misschien staat je php temp map wel in de windows map.. Of je temp internet files oid. Dat zou het kunnen verklaren :). Ik denk wsl dat je php temp bestanden in de windows/temp map worden geplaatst tenzij je anders heb aangegeven.

Anders heb ik ook geen idee

Acties:
  • 0 Henk 'm!

  • Minos111
  • Registratie: Augustus 2002
  • Laatst online: 05-03-2012
hoeveel groter wordt hij dan steeds? Als de mate van verhoging steeds een tikkeltje groter wordt, dan zit het er inderdaad dik in dat de data in een temporary folder wordt opgeslagen...

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Ahum. Het maakt geen fluit uit of je !== of != gebruikt in dit geval, omdat je toch sowieso met strings werkt. Dus die vraag had je net zo goed met "ja" kunnen beantwoorden als met "nee". :P

@gideon82 en Minos111: TS heeft het probleem al opgelost hoor. :P

[ Voor 14% gewijzigd door NMe op 19-12-2004 16:38 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • tombo_inc
  • Registratie: December 2004
  • Laatst online: 04-02-2022
ja klopt, maar toch bedankt voor alle reacties. ik heb nu weer wat bijgeleerd. :D
@minos111 de bestanden werden steeds 100 bytes groter ongeveer.

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition

Pagina: 1