[PHP] Onderdeel van een directory uitlezen *

Pagina: 1
Acties:

Onderwerpen


  • gomaster
  • Registratie: Februari 2002
  • Laatst online: 17-09 17:39
Ik ben bezig aan het maken van een fotosite. Ik heb hiervoor allemaal foto's met andere namen zonder nummers. Nu had ik al iets gemaakt wat alle jpg's in een dir laat zien maar ik wil eigelijk bijvoorbeeld eerst de eerste 5 laten zien en dan met een link door kunnen klikken naar de volgende vijf enz. Maar ik kan hier niks voor vinden.
Hier op got staat ook niks wat bruikbaar is en op andere sites kan ik ook niks vinden.
Ik heb al het volgende
PHP:
1
2
3
4
5
6
7
8
9
10
<?
if ($handle = opendir(".")) {
    while ($file = readdir($handle)) {
        if (is_file($file)) 
            if(ereg('.jpg', $file)) {
                echo '[img]'.[/img]';
        }
}
    closedir($handle);}
?> 

Maar nu nog een manier om pas vanaf de 6e te selecteren en dan weer vanaf de 11e. Wie weet iets?

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
kan je niet bijhouden hoeveel plaatjes je al hebt weergegeven en bij 5 een linkje aangeven die verwijst naar de 'volgende pagina' op de volgende pagina geef je gewoon geen output totdat je op het eerste plaatje bent wat moet worden weergegeven

een url ziet er dan zo'n beetje zow uit afbeelding.php?start=5

edit:

Ik kan je geen voorbeeld geven, werk alleen met ASP...

[ Voor 14% gewijzigd door faabman op 13-09-2003 16:07 ]

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

als je dan ziet dat er een typfout in je topictitel zit, lees dan ook ff P&W FAQ - De "quickstart" over het concept topictitels

Professionele website nodig?


  • gomaster
  • Registratie: Februari 2002
  • Laatst online: 17-09 17:39
Het probleem is een beetje dat ik geen nummers gebruik zoals afbeelding1, afbeelding2 ... dus ik het eigenlijk ook niet bij kan houden. Naar mijn weten kan je niet echt zeggen dat je bij de 6e weer verder moet gaan.
edit:

Sorry voor de vage titel

[ Voor 10% gewijzigd door gomaster op 13-09-2003 16:11 ]


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:51
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<? 
$itemsperpage=10;
if(isset($_GET['page'])){
    $start=$_GET['page']*$itemsperpage;
}else{
    $start=1;
}
$i=1;
if ($handle = opendir(".")) { 
    while ($file = readdir($handle)) { 
        if ($i=>$start){
            if (is_file($file)){ 
                if(ereg('.jpg', $file)) { 
                    echo '[img]'.[/img]'; 
                }
            } 
        }
        $i++; 
    }
} 
    closedir($handle);} 
?> 

[ Voor 41% gewijzigd door djluc op 13-09-2003 16:13 ]


  • gomaster
  • Registratie: Februari 2002
  • Laatst online: 17-09 17:39
Ik geef nog ff een kickje.
Ik kom er nog steeds niet uit :(
ik heb nu dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?
<?
if(isset($GET["start"])) {
    $start = $GET['start'];
}
Else
{
    $start = 1;
}
$i = 0;
//dir openen en door files wandelen
if ($handle = opendir("/var/www/fotosite/fotos/")) {
    while ($file = readdir($handle)) {
        if(ereg('.jpg', $file)) {
            if($i < 3) { // $i telt. Deze if zorgt ervoor dat er maximaal 3 foto's op een pagina komen.
                    if (is_file($file)) {
                            echo '[img]'.[/img]';
                            //echo $i;
                    }
                    
                
                $i++;
                
                //echo $i;
                //echo '<br>';
                }
                else {
                    //voor de verder link
                    $verder = $i + 1;
                    echo '<br><a href=dirlist.php?start=' . $verder . '>verder</a>';
                    closedir($handle);
                    exit;
                }
                
                
            }
            
           
         
        }
        
    
} 
?> 

Wat ik nog moet is dat het script pas foto's laat zien als de waarde start is bereikt. Alleen kom ik er niet uit waar ik nu die if..else moet plaatsen. Kan iemand me daarbij helpen?
edit: DJluc ook jou script geeft geen gewenste resultaten.

[ Voor 27% gewijzigd door gomaster op 17-09-2003 17:32 . Reden: code netter gemaakt ]


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:51
Dan kun je eens proberen te debuggen, kijk eens bij welke if van mijn code er niet met geprint wordt.

Verwijderd

Zou mischien handig zijn als je ook echt wat met die $start doet?? Want zover ik kan zien doe je erop dit moment niks mee.

edit: kijk ook 's goed naar de code van djluc.

[ Voor 18% gewijzigd door Verwijderd op 18-09-2003 21:03 ]


  • gomaster
  • Registratie: Februari 2002
  • Laatst online: 17-09 17:39
Verwijderd schreef op 18 September 2003 @ 20:59:
Zou mischien handig zijn als je ook echt wat met die $start doet?? Want zover ik kan zien doe je erop dit moment niks mee.

edit: kijk ook 's goed naar de code van djluc.
Ik vroeg me juist af wat ik met die $start ging doen en daarom ook mn laatse reply :)

Verwijderd

Simpel, nadat je de eerste x plaatjes hebt weergegeven, wil je de volgende x aantal plaatjes laten zien.
Dus wat je wilt doen is, loop eerst door het aantal plaatjes wat je gehad hebt (bv met een for lus) zonder iets weer te geven.
Als je dit punt bereikt hebt kun je de volgende reeks plaatjes weergeven op de normale manier.
Hierbij wordt je nieuwe $start dus $start + x

Hoop dat dit wat duidlijkheid schept.

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:51
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<? 
$itemsperpage=10;//het aantal pagina's
if(isset($_GET['page'])){//controleer of de variable bestaat
    $start=$_GET['page']*$itemsperpage;/*de variable bestaat, 
de eerste foto die getoond moet worden is $start*/
}else{
    $start=1; //variable niet geset dus vanaf 1e foto tonen
}
$i=1; //counter voor het aantal foto's
if ($handle = opendir(".")) {//open filehandler
    while ($file = readdir($handle)) { //loop files in het dir
        if ($i=>$start){//$is gelijk of groter dan start. 
                      //Start bevat het volgnr van de 1e foto
            if (is_file($file)){ //alleen bestanden
                if(ereg('.jpg', $file)) { //alleen jpg file
                    echo '[img]'.[/img]'; //print de foto
                }
            } 
        }
        $i++; //iedere loop de counter openen
    }
} 
    closedir($handle);} //sluit filehandler
?> 

Ik heb gecomment zodat je begrijpt hoe dit werkt. Als je een bepaald aantal foto's op een rij wilt hebben en een bepaald aantal rijen houdt je ook hiervoor een counter bij.

[ Voor 38% gewijzigd door djluc op 18-09-2003 23:10 ]

Pagina: 1