Вытащить изображения из каталога - PHP - PullRequest
1 голос
/ 10 января 2012

Я пытаюсь просто извлечь изображения из моего каталога / img и динамически загрузить их на веб-сайт следующим образом.

            <img src="plates/photo1.jpg">

Вот и все. Это кажется таким простым, но весь код, который я нашел, в основном не работает.

Я пытаюсь заставить работать вот что:

   <?php
   $a=array();
   if ($handle = opendir('plates')) {
while (false !== ($file = readdir($handle))) {
   if(preg_match("/\.png$/", $file)) 
        $a[]=$file;
else if(preg_match("/\.jpg$/", $file)) 
        $a[]=$file;
else if(preg_match("/\.jpeg$/", $file)) 
        $a[]=$file;

}
closedir($handle);
   }

 foreach($a as $i){
echo "<img src='".$i."' />";
 }
 ?>

Ответы [ 3 ]

4 голосов
/ 10 января 2012

Это можно сделать очень легко, используя glob().

$files = glob("plates/*.{png,jpg,jpeg}", GLOB_BRACE);
foreach ($files as $file)
    print "<img src=\"plates/$file\" />";
3 голосов
/ 10 января 2012

Вы хотите, чтобы ваш источник отображался как plates/photo1.jpg, но когда вы делаете echo "<img src='".$i."' />";, вы пишете только имя файла.Попробуйте изменить это на это:

<?php
$a = array();
$dir = 'plates';
if ($handle = opendir($dir)) {
  while (false !== ($file = readdir($handle))) {
    if (preg_match("/\.png$/", $file)) $a[] = $file;
    elseif (preg_match("/\.jpg$/", $file)) $a[] = $file;
    elseif (preg_match("/\.jpeg$/", $file)) $a[] = $file;
  }
  closedir($handle);
}
foreach ($a as $i) {
  echo "<img src='" . $dir . '/' . $i . "' />";
}
?>
1 голос
/ 10 января 2012

Вы должны использовать Glob вместо opendir / closedir. Это намного проще.

Я не совсем уверен, что ты пытаешься сделать, но ты, возможно, поймешь тебя на правильном пути

<?php
foreach (glob("/plates/*") as $filename) {

    $path_parts = pathinfo($filename);

    if($path_parts['extension'] == "png") {
        // do something
    } elseif($path_parts['extension'] == "jpg") {
        // do something else
    }
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...