从目录中拉出图像 - PHP

时间:2012-01-10 16:03:47

标签: php image directory

我正在尝试从我的目录/ 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 个答案:

答案 0 :(得分:4)

使用glob()可以非常轻松地完成此操作。

$files = glob("plates/*.{png,jpg,jpeg}", GLOB_BRACE);
foreach ($files as $file)
    print "<img src=\"plates/$file\" />";

答案 1 :(得分:3)

您希望您的来源显示为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 . "' />";
}
?>

答案 2 :(得分:1)

您应该使用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
    }
}
?>