我正在尝试从我的目录/ 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."' />";
}
?>
答案 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
}
}
?>