[PHP] aantal fotos in een bepaalde map *

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

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een pagina waar mensen zelf hun fotos kunnen uploaden naar een bepaalde map. Is het mogelijk om het aantal fotos in deze map te laten tellen en vervolgens op een bepaalde pagina te laten zien (hoeveel fotos).

Voorbeeld. In de map http://www.kellystart.com/pictures staan een aantal afbeeldingen.
De hoeveelheid wil ik weergeven op de indexpagina.

Als text zou dit zijn: pictures: X fotos (X is het aantal fotos)
In totaal zijn het 18 mappen dus krijg ik 18 texten.

Wie kan mij helpen

Acties:
  • 0 Henk 'm!

  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 16-09 16:02

JHS

Splitting the thaum.

Jijzelf :) . Je kan hier best wat over vinden met Google, en je zou bijvoorbeeld PHP kunnen gebruiken. Ook zou je op bijvoorbeeld Hotscripts.com kunnen kijken naar verschillende kant en klare scripts :) . Als je er niet uit komt zijn er hier veel mensen die je willen helpen :) .

DM!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
welk zoek woord moet ik gebruiken, ben nl al een hele tijd aan het zoeken.
Kant en Klare script voor het uploaden genoeg, maar die had ik al. Alleen de verwijzing na het aantal fotos in een bepaalde dir. kan ik niet vinden.

Acties:
  • 0 Henk 'm!

  • Exigence
  • Registratie: Juli 2001
  • Laatst online: 12:22

Exigence

dnkroz

Drie woorden in Google: http://www.google.nl/sear...l=nl&q=php+file+count&lr=

Ik denk dat je met de 3e hit wel wat kunt :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt zoiets zocht ik dus alleen jammer dat het voor PHP is maar ik ga nu zoeken onder javascript.

Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 20:58

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

* Thijsmans is weer eens in een goede bui ;)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
$aantalBestanden = 0;

if( $handle = opendir('map/naar/fotodir') )
{
    while( false !== ($file = readdir($handle) ) )
    {
        if( $file != '.' && $file != '..' )
        {
            $aantalBestanden++;
        }
    }
}
printf('Deze map bevatte %d bestanden', $aantalBestanden);


De rest is aan jou :)

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Kan zoiets ook in javascript want ik heb geen idee hoe ik dit aan de gang krijg.
Met het programma waar ik mijn hp mee bouw (WEB Profesional van Denda) kan ik met behulp van een knop code invoeren, maar dit is alleen javacode, voer ik deze code in dan krijg ik deze code ook op mijn hp).

Groetjes

Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Ik denk dat je maar een goed boek over internet moet kopen. Je moet even goed het verschil weten tussen client side en server side scripts.

Client side script is javascript. Hiermee kun je niet het aantal documenten tellen op de webserver. Dit moet in php,asp,jsp o.i.d. gebeuren, dit zijn server side scripts. Deze kunnen wel code's uitvoeren op de server en dus wel het aantal bestanden tellen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
OK,

Ik heb het als php gemaakt

------------------------
<?PHP
$aantalBestanden = 0;

if( $handle = opendir('http://korro.ko.ohost.de/paddy/uploads/') )
{
while( false !== ($file = readdir($handle) ) )
{
if( $file != '.' && $file != '..' )
{
$aantalBestanden++;
}
}
}
printf('Deze map bevatte %d bestanden', $aantalBestanden);
?>
------------------
Ik heb dit scriptje opgeslagen als tel.php maar het werkt niet krijg foutmeldingen??
Hier staat het script (Ohost laat php toe) http://korro.ko.ohost.de/tel.php

Acties:
  • 0 Henk 'm!

  • raoulduke
  • Registratie: Oktober 2003
  • Niet online

raoulduke

Get in!

Je hoster heeft beveilingsmaatregelen ingesteld waardoor je deze file functies niet lijkt te kunnen gebruiken - misschien moet je even met je hoster contact opnemen over het gebruik van deze functies en/of alternatieven die wel toegestaan zijn.

Remember, if you have any trouble you can always send a telegram to the Right People.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik denk dat je gelijk hebt want ik heb nu het script upgeload naar lycos en daar doet hij het wel.
Alleen het aantal files blijft op 0 staan terwijl er in de genoemde directory 1 file staat.

Acties:
  • 0 Henk 'm!

Verwijderd

je hebt pech, je zult dit soort documenten dus zelf moeten aanmaken of je hoster lief aankijken of ze jou (en waarschijnlijk dan iedereen) die rechten willen geven.

Acties:
  • 0 Henk 'm!

  • Exigence
  • Registratie: Juli 2001
  • Laatst online: 12:22

Exigence

dnkroz

Verwijderd schreef op 28 oktober 2004 @ 22:17:
Ik denk dat je gelijk hebt want ik heb nu het script upgeload naar lycos en daar doet hij het wel.
Alleen het aantal files blijft op ) staan terwijl er in de genoemde directory 1 file staat.
Je mag opendir(); niet gebruiken op de server, als je de code uitvoert vanaf bv. Lycos dan accepteert hij het natuurlijk nog niet.

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php
$aantalBestanden = 0; 
if($handle = opendir("")){
    while(($file = readdir($handle)) != false){
        if($file != "." && $file != ".."){
            $aantalBestanden++; 
        } 
    } 
}
echo("Deze map bevat " . $aantalBestanden . " bestanden");
?>


^^ Dat werkt gewoon hoor (misschien een idee om wat meer structuur aan te brengen in je code ;))

Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 20:58

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Exigence schreef op 28 oktober 2004 @ 22:34:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php
$aantalBestanden = 0; 
if($handle = opendir("")){
    while(($file = readdir($handle)) != false){
        if($file != "." && $file != ".."){
            $aantalBestanden++; 
        } 
    } 
}
echo("Deze map bevat " . $aantalBestanden . " bestanden");
?>


^^ Dat werkt gewoon hoor (misschien een idee om wat meer structuur aan te brengen in je code ;))
Hmm, wat heb jij lekker structuur aangebracht in die code zeg :Y) Het enige dat je hebt gedaan is de accolades achter elke regel gezet ipv op een nieuwe regel, '!==' verandert in '!=' (wat overigens absoluut niet hetzelfde is) en een statement omgedraaid 8)7 Oh ja, je hebt ook nog een echo neergezet ipv printf :o

@topicstarter:
PHP:
1
if( $handle = opendir('http://korro.ko.ohost.de/paddy/uploads/') )


heb je dit ook zo gedaan in het script van die ohost.de? De foutmelding gaat nl. over URL-file-access:
Warning: opendir(): URL file-access is disabled in the server configuration

Wat nou als je geen URL gebruikt, maar het absolute pad naar de goede map op de server? Vanuit /tel.php zou het bijv. './paddy/uploads' moeten zijn.

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 21:18

crisp

Devver

Pixelated

serverside \o/

Programming & Webscripting \o/

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Jazzy
  • Registratie: Juni 2000
  • Nu online

Jazzy

Moderator SSC/PB

Moooooh!

offtopic:
Als ik jou was zou ik dat log van WS_FTP uitzetten. Dat vertelt namelijk iets over de struktuur van je lokale harde schijf (je E-schijf in jouw geval :)) en over de ftp-server. In het kader van security kan dat waardevolle informatie voor de liefhebbers zijn.

[ Voor 13% gewijzigd door Jazzy op 29-10-2004 08:52 ]

Exchange en Office 365 specialist. Mijn blog.


Acties:
  • 0 Henk 'm!

  • Exigence
  • Registratie: Juli 2001
  • Laatst online: 12:22

Exigence

dnkroz

Prammenhanger schreef op 29 oktober 2004 @ 00:10:
[...]


Hmm, wat heb jij lekker structuur aangebracht in die code zeg :Y) Het enige dat je hebt gedaan is de accolades achter elke regel gezet ipv op een nieuwe regel, '!==' verandert in '!=' (wat overigens absoluut niet hetzelfde is) en een statement omgedraaid 8)7 Oh ja, je hebt ook nog een echo neergezet ipv printf :o
offtopic:
:>
Ik doelde meer op het regelrecht onder elkaar zetten, ipv inspringen wat meer overzicht/structuur aanbrengt in je code. En de manier waarop ik het neerzet (statments etc.) dat is gewoon mijn manier. Hij mag van mij ook best alles onder elkaar zetten als hij dat wil, het was maar een tip :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt aan alle die geholpen hebben het werkt nu.
Ik neem aan wanneer meerdere regels onder elkaar wil hebben

vb
paddy: 2 fotos
jimmy: 3 fotos
barby: 1 foto etc

Dat ik de code gewoon kan kopieren en plakken achter de voorgaande code??
In javascript gebruikje ik altijd <br> voor een return (nieuwe regel), hoe doe ik dat nu?
Als ik jou was zou ik dat log van WS_FTP uitzetten. Dat vertelt namelijk iets over de struktuur van je lokale harde schijf (je E-schijf in jouw geval ) en over de ftp-server. In het kader van security kan dat waardevolle informatie voor de liefhebbers zijn.
Komt dit door het gebruik van mijn php scriptje (dat mensen mijn structuur van mijn e-schijf kunnen inzien) of heeft het te maken met het WS_ftp programma.
Hoe kun je dat dan zien en hoe kan ik log uitzetten.

[ Voor 20% gewijzigd door Verwijderd op 29-10-2004 18:24 ]


Acties:
  • 0 Henk 'm!

  • Jazzy
  • Registratie: Juni 2000
  • Nu online

Jazzy

Moderator SSC/PB

Moooooh!

Verwijderd schreef op 29 oktober 2004 @ 17:52:
Komt dit door het gebruik van mijn php scriptje (dat mensen mijn structuur van mijn e-schijf kunnen inzien) of heeft het te maken met het WS_ftp programma.
Hoe kun je dat dan zien en hoe kan ik log uitzetten.
Aan de bestandsnaam http://www.kellystart.com/pictures/WS_FTP.LOG kun je zien dat het een logfile is van WS_FTP. :) Uitzetten doe je in de opties, ik kan het even niet nakijken maar de optie is duidelijk zichtbaar.

Exchange en Office 365 specialist. Mijn blog.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
bedankt voor de tip denk dat ik het gedaan heb (enable log)

Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
Exigence schreef op 28 oktober 2004 @ 22:34:
PHP:
1
while(($file = readdir($handle)) != false)
Die != heeft hier absoluut geen nut, omdat je daar nou hetzelfde hebt staan als
PHP:
1
while ($file = readdir ($handle))

En je dir zal eens 0 of een vergelijkbare naam hebben. Vandaar dus de !== ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoe kan ik nu meerdere regels onder krijgen

vb
paddy: 2 fotos
jimmy: 3 fotos
barby: 1 foto etc

Dat ik de code gewoon kan kopieren en plakken achter de voorgaande code??
In javascript gebruikje ik altijd <br> voor een return (nieuwe regel), maar dat werkt hier niet.

Acties:
  • 0 Henk 'm!

  • SlinkingAnt
  • Registratie: December 2001
  • Niet online
Tussen de scriptjes een <br> zetten.

Intel C2Q 9450@3.3 | Gigabyte P35-DS4 | Sapphire R280x | 4x 2GiB PC6400 Kingston DDR2 | 1x Intel 320SSD 240GB | 2x Spinpoint F1 320GiB


Acties:
  • 0 Henk 'm!

  • brute51
  • Registratie: Augustus 2001
  • Laatst online: 07-08 23:35
Als je alle fotos in een andere map hebt staan (dus elke gebruiker een andere map) dan zou je dit is kunnen proberen (hoop dat t geen fouten bevat :))

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php

function numFilesInDir ($folder='.') {

  if( $handle = opendir($folder) )
  {
      while( false !== ($file = readdir($handle) ) )
      {
          if( $file != '.' && $file != '..' )
          {
              $aantalBestanden++;
          }
      }
  }

  return $aantalBestanden;
}

echo 'Paddy heeft '.numFilesInDir('./fotos/paddy/').' foto\'s.<BR>';
echo 'Jimmy heeft '.numFilesInDir('./fotos/paddy/').' foto\'s.<BR>';
echo 'Barby heeft '.numFilesInDir('./fotos/paddy/').' foto\'s.<BR>';

?>


Als je heel veel namen wilt opgeven kun je het beter nog weer anders doen.

Ik heb echt een hele goeie PC.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt het werkt helemaal, enig idee hoe ik de letergrootte kan verkleinen.
Wanneer ik <font size="1"> vooraan in het script zet en </font> achteraan in het script werkt het hele script niet meer.

Acties:
  • 0 Henk 'm!

  • SlinkingAnt
  • Registratie: December 2001
  • Niet online
PHP:
1
echo '<font size"1">Paddy heeft '.numFilesInDir('./fotos/paddy/').' foto\'s,/font..<BR>';

Zou moeten werken :)

Intel C2Q 9450@3.3 | Gigabyte P35-DS4 | Sapphire R280x | 4x 2GiB PC6400 Kingston DDR2 | 1x Intel 320SSD 240GB | 2x Spinpoint F1 320GiB


Acties:
  • 0 Henk 'm!

Verwijderd

1 woord: Stylesheet

Acties:
  • 0 Henk 'm!

  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 16-09 16:02

JHS

Splitting the thaum.

Verwijderd schreef op 30 oktober 2004 @ 18:43:
Bedankt het werkt helemaal, enig idee hoe ik de letergrootte kan verkleinen.
Wanneer ik <font size="1"> vooraan in het script zet en </font> achteraan in het script werkt het hele script niet meer.
Je moet ervoor zorgen dat " niet door het script als " word gezien door " te vervangen door \" of '
Is echter natuurlijk een stuk netter :) .

[ Voor 24% gewijzigd door JHS op 30-10-2004 19:23 ]

DM!


Acties:
  • 0 Henk 'm!

  • brute51
  • Registratie: Augustus 2001
  • Laatst online: 07-08 23:35
Met <font size=... is denk ik de makkelijkste manier. Je kunt idd stylesheets gebruiken, het wordt er wel mooier op maar het is misschien (te) moeilijk voor beginners (zo komt de TS op mij over).

Wil je het toch proberen zet dan in plaats van <font size="1"> dit neer:
<span style="{font-size: 10px;}"> en helemaal aan het eind van de regel maar net voor de <br> zet je dit neer: </span> . Wil je grotere letters of juist kleiner vervang dan 10px door 8px (kleiner) of 12px (groter) of.. wat je maar wil. Ik weet eigenlijk niet of er een limiet is aan de lettergrootte maar ik denk t niet.
Dit is trouwens geen echte stylesheet, meer een soort tussen oplossing. Maar het werkt...

[ Voor 19% gewijzigd door brute51 op 31-10-2004 01:40 ]

Ik heb echt een hele goeie PC.

Pagina: 1