我正在尝试使用 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; ?>