Динамически вытягивая изображения и создавая ссылки - PullRequest
0 голосов
/ 01 ноября 2009

Есть ли способ извлечь изображения из каталога, разместить их на веб-странице и добавить ссылки на эти изображения, которые позволят человеку перейти на определенную веб-страницу, связанную с этим изображением, с использованием PHP?

Спасибо

Ответы [ 4 ]

0 голосов
/ 01 ноября 2009

@ ricebowl:

с использованием PHP версии 5.2.9 / apache 2.0 / windows vista - получаю ошибку Parse.

В любом случае, есть рабочий раствор:

$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 голосов
/ 01 ноября 2009

примерно так должно это сделать:

    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 голосов
/ 01 ноября 2009

Вы спрашиваете, как сканировать каталог или как связать список изображений с URL-адресами?

ответ на первый вопрос - функция glob ()

второй ответ - использовать ассоциированный массив

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

и цикл foreach для вывода изображений и ссылок

foreach($list as $src => $href) echo "<a href='$href'><img src='$src'></a>";
0 голосов
/ 01 ноября 2009
<?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>";

?>

Это должно работать, хотя foreach() может быть вычислительно-дорогостоящим. И я уверен, что должен быть лучший / более экономичный способ удаления относительных путей к файлам . и .. в первом foreach()

...