Map uitlezen en files sorteren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Erik

Erik

31/03/2006 22:49:00
Quote Anchor link
Ik ben al een hele tijd bezig met het uitlezen van een directory, dit lukt wel goed maar nu wil ik de bestanden hier in op volgorde zetten zodat je een nette lijst krijgt van de bestanden en deze niet kriskras door elkaar heen zitten.

Wat ik heb om een directory uit te lezen is dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
if ($handle = opendir('/pics')) {
   while (false !== ($file = readdir($handle))) {
       sort($file);
       if ($file != "." && $file != "..") {
           echo '<option value="'.$file.'"'; if ($file == $list['pic']) { echo ' selected'; } echo '>'.$file.'</option>';
       }
   }
   closedir($handle);
}


Nu weet ik dat je de bestanden kan uitlezen op volgorde met case() maar wanneer je dat wilt doen dan moet je de bestanden in een array gooien, en op dat moment gaat het bij mij mis. Ik wil namelijk de onderstaande code gebruiken, leest de map goed uit maar hij selecteert het bestand niet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$handle = opendir('/pics');
while(false!==($file = readdir($handle))) {
  
if($file != "." && $file != ".."){
  $files[]=$file;
}  
}

if($files) {
       sort($files);
       foreach ($files as $file)
           echo '<option value="'.$file.'">'.$file.'</option>';
}
closedir($handle);


Met hij selecteert het bestand niet bedoel ik de regel

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo '<option value="'.$file.'"'; if ($file == $list['pic']) { echo ' selected'; } echo '>'.$file.'</option>'; ?>


$list['pic'] haalt dus de bestandsnaam uit de database maar ik krijg het niet voor elkaar deze in het bovenstaande stukje code te verwerken.

Kan iemand mij een oplossing bieden want het lijkt mij niet onmogelijk alleen ik krijg het gewoon niet voor elkaar, alleen in het eerste voorbeeld lukt het dus wel maar die sorteert de bestanden niet. Het gaat er om dat de bestanden gesorteert weergegeven worden in de selectielijst en dat het bestandsnaam welke in de database staat wanneer deze overeenkomst met het bestand uit de directory dat dan de select option geselecteert is.

Alvast bedankt!
Gewijzigd op 31/03/2006 22:50:00 door Erik
 
PHP hulp

PHP hulp

26/04/2024 16:18:10
 
- SanThe -

- SanThe -

31/03/2006 22:57:00
Quote Anchor link
Echo die $list['pic'] eens om te kijken of en wat er in zit.
 
Erik

Erik

31/03/2006 23:20:00
Quote Anchor link
Dat werkt goed, wanneer ik $list['pic'] echo dan krijg ik afbeelding.gif te zien, precies hetzelfde zoals de bestandsnaam in de map /pics staat.

Op een of andere mannier lukt het niet om 'm te echo'en en zo te kijken of $list['pic'] gelijk is aan $file.
 
Erik

Erik

31/03/2006 23:25:00
Quote Anchor link
Een nieuwe ontwikkeling, ik krijg wel de lijst te zien maar deze is helemaal gevuld met witregels net zo lang als de lijst van bestanden in de map /pics en alleen het laatste bestand word getoond helemaal onder in de lijst.

Vreemd? Of doe ik gewoon echt iets wat niet kan...
 
- SanThe -

- SanThe -

31/03/2006 23:35:00
Quote Anchor link
Met welk scriptje? Post 'm eens.
 
Erik

Erik

31/03/2006 23:44:00
Quote Anchor link
De scripts staan hier boven vermeld, de eerste (helemaal bovenaan) toont de bestanden goed en je kunt met de $list['pic']; de juiste afbeelding selecteren maar in het script daar onder kan ik de afbeeldingen goed sorteren maar dan werkt $list['pic']; niet meer om de geselecteerde afbeelding 'geselecteerd' te maken.
 
- SanThe -

- SanThe -

31/03/2006 23:57:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$handle
= opendir('/pics');
while(false!==($file = readdir($handle)))
{

    if($file != "." && $file != "..")
    {

        $files[]=$file;
    }  
}

if($files)
{

    sort($files);
    foreach ($files as $file)
    {

        echo '<option value="' . $file . '"';
        if($file == $list['pic'])
        {

            echo ' selected';
        }

        echo '>' . $file . '</option>';
    }
}

closedir($handle);
?>
 
Erik

Erik

01/04/2006 00:06:00
Quote Anchor link
Geniaal, het werkt! Nou ja zeg... ben ik daar zo lang mee bezig? Het is blijkbaar zo kinderlijk eenvoudig. Is PHP zo 'precies' met de opbouw van de code? Want wat is er dan zo anders aan jou script vergeleken met die van mij? Want het komt gewoon op hetzelfde neer.

Mag ik je hartelijk bedanken voor je hulp.
 
- SanThe -

- SanThe -

01/04/2006 00:14:00
Quote Anchor link
Nou het is zelfs zo simpel, en ga nou niet jezelf gelijk voor je bol slaan, maar je hebt in je tweede script dat stukje van dat 'if(....) en dat selected' niet staan.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.