我正在尝试使用foreach从某个目录显示图像..但问题是它在数组中显示结果,所以如果我想要打印出第一张图像,我必须使用$ imag ['0'] .. < / p>
有没有办法可以在这个括号中绕过这个数字?
这是我的代码......
<?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']; ?>">
答案 0 :(得分:1)
如果你只需要第一个文件名,那么你可以避免循环并直接访问数组的第一个元素并在之后使用它:
$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);
答案 1 :(得分:0)
嗯,你可以先在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; ?>