Avatar billede saudoo Nybegynder
13. december 2003 - 15:10 Der er 63 kommentarer og
1 løsning

Tæller objekter fra mappe

Hej eksperter,

Er der nogle af jer, som kender en måde, at få skrevet hvormange objekter der ligger i en angiven mappe ?

Jeg skal nemlig bruge den til et billedarkiv, hvor der skal stå hvormange billeder der ligger i hver mappe.

Med venlig hilsen
Jakob
funsense.frac.dk / til en start. :P
Avatar billede detox Nybegynder
13. december 2003 - 15:27 #1
Her er en lille funktion som tæller filerne i $dir:

<?php
$dir = "."; // Aktuel mappe
echo "Antal filer: " . antalFiler($dir);

function antalFiler($dir) {
    $d = dir(".");
    $c = 0;
    while (false !== ($entry = $d->read())) {
      if (is_file($entry)) $c++;
    }
    $d->close();
    return $c;
}
?>
Avatar billede saudoo Nybegynder
13. december 2003 - 15:28 #2
tak, jeg ser lige om det virker.. :D
Avatar billede saudoo Nybegynder
13. december 2003 - 15:41 #3
er der en måde, hvorpå man kan indkludere den på en side ? altså sådan så den måske læser fra et par sider fremm ?
Avatar billede detox Nybegynder
13. december 2003 - 15:45 #4
Ved ikke lige hvad du mener?
Avatar billede saudoo Nybegynder
13. december 2003 - 15:47 #5
Altså jeg har en side.. her: http://funsense.frac.dk/mapper_billeder.php
og ved hvert navn, ex. Andre, Børn etc., vil jeg gerne have "Antal filer:X" til at stå, med hvormange bileder der er i hver af dem.
Avatar billede saudoo Nybegynder
13. december 2003 - 15:47 #6
var også lidt fucked up skrevet... :P
Avatar billede detox Nybegynder
13. december 2003 - 15:51 #7
Ja, det skulle nok være muligt. Så skal det flettes ind i dit script: 'mappe_billeder.php'.
Avatar billede saudoo Nybegynder
13. december 2003 - 15:53 #8
Hmm.. så skal jeg vel skrive stien ved.. :$dir = "."; // Aktuel mappe
mellem de to " ".. men så skriver den en fejl.. er det rigtig det jeg gør.. altså at slette punktumet og smide en sti op?
Avatar billede saudoo Nybegynder
13. december 2003 - 15:53 #9
ind*
Avatar billede detox Nybegynder
13. december 2003 - 15:54 #10
Ja, det er korrekt. Hvilken fejl får du?
Avatar billede saudoo Nybegynder
13. december 2003 - 15:57 #11
Warning: is_file() [function.is-file]: SAFE MODE Restriction in effect. The script whose uid is 15316 is not allowed to access .. owned by uid 0 in /web/www/frac/users/funsense/mapper_billeder.php on line 23
Antal filer: 24

Det med antal filer, det er også forkert.. den skrive at der er 24 men der er kun 7. Hvis man kører en fil med koden alene, og som der ligger ved siden at billederne, så tæller den godt nok.
Avatar billede detox Nybegynder
13. december 2003 - 16:07 #12
Jeg har desværre ikke mere tid lige nu, må se på det senere.
Avatar billede saudoo Nybegynder
13. december 2003 - 16:08 #13
ok.. :P
Avatar billede detox Nybegynder
14. december 2003 - 00:29 #14
Det lyder som om stien er forkert?
Avatar billede sukos Juniormester
14. december 2003 - 11:16 #15
Nok mere fordi safe_mode = On i php.ini

Prøv:

<?php

function taelfiler($sti) {
$dir_to_open = $_SERVER["DOCUMENT_ROOT"] ."/". $sti ."/";

if(file_exists($dir_to_open) && is_dir($dir_to_open)) {
$path = opendir($dir_to_open);
$antal = 0;
while (false !== ($files = readdir($path))) {
    if($files == "." || $files == ".." || is_dir($dir_to_open . $files)) {
continue;
    }

    $antal++;
}
closedir($path);

echo $antal;
    }else{
echo"Fejl i stien!";
}
clearstatcache();
}

taelfiler("Andre");

?>
Avatar billede saudoo Nybegynder
14. december 2003 - 16:43 #16
det virker stadigvæk ikke:

http://funsense.frac.dk/billeder_indbr.php
Avatar billede detox Nybegynder
14. december 2003 - 16:52 #17
Prøv evt. sådan her:

<?php
$dir = $_SERVER['DOCUMENT_ROOT']."/funsense/gallery/andre/"; // Valgt mappe
echo "Antal filer: " . antalFiler($dir);

function antalFiler($dir) {
    $d = dir($dir);
    $c = 0;
    while (false !== ($entry = $d->read())) {
      if (is_file($entry)) $c++;
    }
    $d->close();
    return $c;
}
?>
Avatar billede saudoo Nybegynder
14. december 2003 - 19:20 #18
Prøver lige.. jeg så lige julekalender.. :P
Avatar billede saudoo Nybegynder
14. december 2003 - 19:29 #19
Det virker ikke.. jeg prøvede også med:

<?php
$dir = $_SERVER['DOCUMENT_ROOT']."/gallery/andre/"; // Valgt mappe
echo "Antal filer: " . antalFiler($dir);

function antalFiler($dir) {
    $d = dir($dir);
    $c = 0;
    while (false !== ($entry = $d->read())) {
      if (is_file($entry)) $c++;
    }
    $d->close();
    return $c;
}
?>

Altså hvor jeg fjernede /funsense
Avatar billede detox Nybegynder
14. december 2003 - 19:58 #20
Stadig samme fejl?
Avatar billede saudoo Nybegynder
14. december 2003 - 19:59 #21
nej den er noget større
fejlen:

Warning: dir() [function.dir]: SAFE MODE Restriction in effect. The script whose uid is 15316 is not allowed to access /web/www/frac/users/gallery owned by uid 0 in /web/www/frac/users/funsense/mapper_billeder.php on line 38

Warning: dir(/web/www/frac/users/gallery/andre/) [function.dir]: failed to open dir: No such file or directory in /web/www/frac/users/funsense/mapper_billeder.php on line 38

Fatal error: Call to a member function on a non-object in /web/www/frac/users/funsense/mapper_billeder.php on line 40
Avatar billede detox Nybegynder
14. december 2003 - 20:15 #22
Hvad når du prøver med en relativ sti som denne:
$dir = "gallery/andre/"; // Valgt mappe
Avatar billede maxsover Nybegynder
14. december 2003 - 20:20 #23
Hej.
Jeg er ved at lave på den side sammen med Saudoo...

Vil bare sige at han er ikke tilstede, da han ser et tv-program.

Han er nok tilbage klokken 21 eller deromkring:)
Avatar billede saudoo Nybegynder
14. december 2003 - 21:06 #24
hmm.. prøver
Avatar billede saudoo Nybegynder
14. december 2003 - 21:13 #25
Det virker slet ikke..

den skriver det samme som før, og når jeg ændre linjen til $dir = "gallery/andre/"; // Valgt mappe i stedet for $dir = $_SERVER['DOCUMENT_ROOT']."/gallery/andre/"; // Valgt mappe
skriver den dette:

Warning: is_file() [function.is-file]: SAFE MODE Restriction in effect. The script whose uid is 15316 is not allowed to access .. owned by uid 0 in /web/www/frac/users/funsense/mapper_billeder.php on line 41
Antal filer: 0

Jeg har self også prøvet at skrive $dir = $_SERVER['DOCUMENT_ROOT']."gallery/andre/"; // Valgt mappe. Men det virker ikke. :(
Avatar billede sukos Juniormester
14. december 2003 - 21:17 #26
Hvad med et link til en phpinfo()?
Så skulle det være muligt at lave noget som virker! :O)

phpinfo():

<?php phpinfo(); ?>
Avatar billede saudoo Nybegynder
14. december 2003 - 21:17 #27
to sek
Avatar billede saudoo Nybegynder
14. december 2003 - 21:18 #28
Avatar billede sukos Juniormester
14. december 2003 - 21:29 #29
hmmhmhm, hvad med denne:

<?php
$dir = "/web/www/frac/users/funsense/gallery/andre/"; // Valgt mappe
echo "Antal filer: " . antalFiler($dir);

function antalFiler($dir) {
    $d = dir($dir);
    $c = 0;
    while (false !== ($entry = $d->read())) {
      if (is_file($entry)) $c++;
    }
    $d->close();
    return $c;
}
?>
Avatar billede saudoo Nybegynder
14. december 2003 - 21:30 #30
hmmhmhm jeg tester lige :)
Avatar billede sukos Juniormester
14. december 2003 - 21:30 #31
Når du logger ind med ftp, så er det vel dir'et "funsense" du har adgang til?
Avatar billede saudoo Nybegynder
14. december 2003 - 21:31 #32
jep..
Avatar billede saudoo Nybegynder
14. december 2003 - 21:32 #33
Avatar billede sukos Juniormester
14. december 2003 - 21:38 #34
Og hvad så med:

<?php

function taelfiler($sti) {
$dir_to_open = ""/web/www/frac/users/funsense/". $sti ."/";
$path = opendir($dir_to_open);
$antal = 0;
while (false !== ($files = readdir($path))) {
if($files == "." || $files == ".." || is_dir($dir_to_open . $files)) {
continue;
}

$antal++;
}
closedir($path);

echo $antal;
clearstatcache();
}

taelfiler("gallery/Andre");

?>
Avatar billede saudoo Nybegynder
14. december 2003 - 21:39 #35
hmm tester
Avatar billede saudoo Nybegynder
14. december 2003 - 21:42 #36
nu skriver den ikke andet end..

Parse error: parse error, unexpected '.' in /web/www/frac/users/funsense/mapper_billeder.php on line 40

resten af siden er gewäck
Avatar billede sukos Juniormester
14. december 2003 - 21:43 #37
$dir_to_open = "/web/www/frac/users/funsense/". $sti ."/";

en " for meget
Avatar billede saudoo Nybegynder
14. december 2003 - 21:44 #38
ahh.. to sek.. ser lige om det gjorde det..
Avatar billede saudoo Nybegynder
14. december 2003 - 21:45 #39
nice fejl der..

Warning: opendir() [function.opendir]: SAFE MODE Restriction in effect. The script whose uid is 15316 is not allowed to access /web/www/frac/users/funsense/gallery owned by uid 0 in /web/www/frac/users/funsense/mapper_billeder.php on line 37

Warning: opendir(/web/www/frac/users/funsense/gallery/Andre/) [function.opendir]: failed to open dir: No such file or directory in /web/www/frac/users/funsense/mapper_billeder.php on line 37

Warning: readdir(): supplied argument is not a valid Directory resource in /web/www/frac/users/funsense/mapper_billeder.php on line 39

Warning: closedir(): supplied argument is not a valid Directory resource in /web/www/frac/users/funsense/mapper_billeder.php on line 46
0 Andre
Avatar billede sukos Juniormester
14. december 2003 - 21:49 #40
http://funsense.frac.dk/gallery/Andre/
virker IKKE!

Men
http://funsense.frac.dk/gallery/andre/
virker! :O)

Så prøv:

<?php

function taelfiler($sti) {
$dir_to_open = ""/web/www/frac/users/funsense/". $sti ."/";
$path = opendir($dir_to_open);
$antal = 0;
while (false !== ($files = readdir($path))) {
if($files == "." || $files == ".." || is_dir($dir_to_open . $files)) {
continue;
}

$antal++;
}
closedir($path);

echo $antal;
clearstatcache();
}

taelfiler("gallery/nndre");

?>
Avatar billede sukos Juniormester
14. december 2003 - 21:50 #41
Shit, andre og ikke nndre !!!
Avatar billede saudoo Nybegynder
14. december 2003 - 21:50 #42
he he.. ja.. ok.. prøver.!
Avatar billede saudoo Nybegynder
14. december 2003 - 21:53 #43
den skrev
Parse error: parse error, unexpected '.' in /web/www/frac/users/funsense/mapper_billeder.php on line 40

og da jeg så ændrede til:
--------
$dir_to_open = "/web/www/frac/users/funsense/". $sti ."/";

en " for meget
-------

skrev den denne fejl:

Warning: opendir() [function.opendir]: SAFE MODE Restriction in effect. The script whose uid is 15316 is not allowed to access /web/www/frac/users/funsense/gallery owned by uid 0 in /web/www/frac/users/funsense/mapper_billeder.php on line 37

Warning: opendir(/web/www/frac/users/funsense/gallery/nndre/) [function.opendir]: failed to open dir: No such file or directory in /web/www/frac/users/funsense/mapper_billeder.php on line 37

Warning: readdir(): supplied argument is not a valid Directory resource in /web/www/frac/users/funsense/mapper_billeder.php on line 39

Warning: closedir(): supplied argument is not a valid Directory resource in /web/www/frac/users/funsense/mapper_billeder.php on line 46
0 Andre
Avatar billede saudoo Nybegynder
14. december 2003 - 21:54 #44
DOH... min fejl
Avatar billede saudoo Nybegynder
14. december 2003 - 21:56 #45
okay.. jeg brugte:

<?php

function taelfiler($sti) {
$dir_to_open = "/web/www/frac/users/funsense/". $sti ."/";
$path = opendir($dir_to_open);
$antal = 0;
while (false !== ($files = readdir($path))) {
if($files == "." || $files == ".." || is_dir($dir_to_open . $files)) {
continue;
}

$antal++;
}
closedir($path);

echo $antal;
clearstatcache();
}

taelfiler("gallery/andre");

?>


men nu skriver den at der kun er 2 filer... :o
Avatar billede saudoo Nybegynder
14. december 2003 - 21:56 #46
og der er 5 skal der lige siges :D
Avatar billede sukos Juniormester
14. december 2003 - 21:59 #47
Prøv at fjerne "is_dir()"

if($files == "." || $files == "..") {
continue;
}
Avatar billede saudoo Nybegynder
14. december 2003 - 22:00 #48
skal jeg skifte den ud ? med koden under ?
Avatar billede saudoo Nybegynder
14. december 2003 - 22:00 #49
ahh
Avatar billede saudoo Nybegynder
14. december 2003 - 22:01 #50
nu skrive den at der er 3.. men det er stadigvæk 5..
Avatar billede sukos Juniormester
14. december 2003 - 22:02 #51
:O)
Ja jeg ved sgutte du! :O)
Avatar billede saudoo Nybegynder
14. december 2003 - 22:04 #52
hmm.. fuck det så.. skriv et svar så for du pointenes alligevel, da du har arbejdet på scriptet.. :P
Avatar billede sukos Juniormester
14. december 2003 - 22:05 #53
Hvad med detox's forslag?

<?php
$dir = "/web/www/frac/users/funsense/"; // Valgt mappe
echo "Antal filer: " . antalFiler("gallery/andre/");

function antalFiler($dir) {
    $d = dir($dir);
    $c = 0;
    while (false !== ($entry = $d->read())) {
    if($entry == "." || $entry == "..") {
continue;
}
$c++;
    }
    $d->close();
    return $c;
}
?>
Avatar billede saudoo Nybegynder
14. december 2003 - 22:06 #54
Den skriver stadigvæk at der er 3 filer.. :'(
Avatar billede sukos Juniormester
14. december 2003 - 22:08 #55
Avatar billede sukos Juniormester
14. december 2003 - 22:09 #56
eller rettere, 2 og et dir! :O)

Her er 6! :O)

http://funsense.frac.dk/gallery/andre/billeder/
Avatar billede saudoo Nybegynder
14. december 2003 - 22:10 #57
hmm.. DOH.. (i hjørnet, som er ogvertaget af det dunkle hjørne, hører man en svag dunken. Lysten for dig til at bevæge dit mod de mærkelige lyde. Og med et, da du hæver en lommelygte, er du en dreng/mand der slår sig i hoved med et varmt krøllehjern.)
Avatar billede sukos Juniormester
14. december 2003 - 22:11 #58
jahh, der er vist en lille bøf i dit galleri script!
Avatar billede saudoo Nybegynder
14. december 2003 - 22:12 #59
ja.. den viser ikke alle billederne... der ligger 6 men den viser kun 5 .. :( wtf
Avatar billede sukos Juniormester
14. december 2003 - 22:14 #60
Den viser ikke gif-billeder.

æh, og detox, sig lige til, du skal osse ha', så vi deler point!
Avatar billede saudoo Nybegynder
14. december 2003 - 22:14 #61
damn.. han glemte jeg helt.. jeg laver et nyt spg.. så du kan få points.. to sek
Avatar billede saudoo Nybegynder
14. december 2003 - 22:16 #62
http://www.eksperten.dk/spm/439966 her.. jeg giver 50 points ekstra
Avatar billede saudoo Nybegynder
14. december 2003 - 22:17 #63
OG DET HEDDER HAM IKKE HAN :P
Avatar billede saudoo Nybegynder
15. december 2003 - 09:15 #64
Hmm.. den kan nu godt læse .gif billeder.. !?! .. underligt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester