2009-11-01 3 views

Répondre

0
<?php 
    $directory = "imageDirectory"; // assuming that imageDirectory is in the same folder as the script/page executing the script 
    $contents = scandir($directory); 
    if ($contents) { 
     foreach($contents as $key => $value) { 
      if ($value == "." || $value == "..") { 
       unset($key); 
      } 
     } 
    } 
     echo "<ul>"; 
    foreach($contents as $k => $v) { 
     echo "<li><a href=\"$directory/" . $v . "\">link text</a></li>"; 
    } 
     echo "</ul>"; 

?> 

Cela devrait fonctionner, bien que foreach() peut être -computationally- cher. Et je suis sûr qu'il doit y avoir une meilleure/façon plus-économique de supprimer les chemins fichiers relatifs-de . et .. dans la première foreach()

0

quelque chose comme ça devrait le faire:

if ($handle = opendir('/path/to/files')) { 
    echo "Directory handle: $handle\n"; 
    echo "Files:\n"; 

    /* This is the correct way to loop over the directory. */ 
    while (false !== ($file = readdir($handle))) { 
    if(substr($file, -3) == 'jpg'){ //modify to handle filetypes you want 
        echo "<a href='/path/to/files/".$file."'>".$file."</a>"; 
    } 
    } 

    closedir($handle); 
} 
+0

aussi, http://www.php.net/manual/en/function.readdir.php vous aidera. la majeure partie du code ci-dessus provient de cette page. – Jesse

0

sont vous demander comment analyser le répertoire ou comment associer une liste d'images avec des URL?

la réponse à la première question est fonction glob()

la deuxième solution consiste à utiliser un tableau de assoc

$list = array('foo.gif' => 'bar.php', 'blah.gif' => 'quux.php'); 

et une boucle foreach pour émettre des images et des liens

foreach($list as $src => $href) echo "<a href='$href'><img src='$src'></a>"; 
0

@ricebowl:

en utilisant PHP Version 5.2.9/apache 2.0/windows vista - Je suis gett Erreur d'analyse.

de toute façon, il y a une solution de travail:

$dir = "./imageDirectory"; 
$ext = array('.jpg','.png','.gif'); 

$dh = opendir($dir); 
while (false !== ($filename = readdir($dh))) { 

print '<ul>'; 

if(strpos($filename, '.') > 3) 
{ 
    print '<li><a href="'.$dir.'/'.$filename.'">'.str_replace($ext, '', $filename).'</a></li>'; 

} 

print '</ul>'; 

} 
+0

Ah? Quelle est l'erreur que vous obtenez? –

+0

... ah, ouais. Je ne suis pas sûr de ce que je faisais pour que cela arrive. Euh, désolé pour ça. =/(édité mon post pour corriger la syntaxe/code) –

+0

change $ directory = "imageDirectory"; à $ directory = "./imageDirectory"; c'est tout :) –