使用数组显示图片的 php


Php showing pictures using array

我正在尝试使用 foreach 显示来自某个目录的图像。但问题是它在数组中显示结果,所以如果我想打印出第一个图像,我必须使用 $imag['0']。

有什么方法可以绕过此括号中的此数字吗?

这是我的代码...

<?php
$domena = $_SERVER['HTTP_HOST'];
$galerija = $_POST['naziv'];
$galerija = mysql_real_escape_string($galerija);
define('IMAGEPATH', 'galleries/'.$galerija.'/');
foreach(glob(IMAGEPATH.'*') as $filename){
    $imag[] =  basename($filename);
?>
<img src="http://<?php echo $domena; ?>/galerija/galleries/<?php echo $galerija; ?>/<?php echo $imag['0']; ?>">

如果你只需要第一个文件名,那么你可以避免循环,直接访问数组的第一个元素,然后使用它:

$files = glob(IMAGEPATH.'*');
$filename =  array_shift(array_values($files));
$image = basename($filename);

要显示它,您可以使用sprintf()

echo sprintf('<img src="http://%s/galerija/galleries/%s/%s"/>', 
    $domena, $galerija, $image);

好吧,您首先可以在foreach语句中创建数组,而只需打印img:

echo '<img src="', $domena ,'/galerija/galleries/', $galerija ,'/', $filename,'">';

或者,您可以迭代数组。

foreach($imag as $img): ?>
    <img src="http://<?php echo $domena; ?>/galerija/galleries/<?php echo $galerija; ?>/<?php echo $img ?>">
<?php endforeach; ?>