简体   繁体   中英

Php showing pictures using array

I'm trying to show images from some directory using foreach.. But the problem is it's showing results in array, so if i want to print out first image I have to use $imag['0']..

Is there any way that I can bypass this number in this brackets?

Here's my code...

<?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']; ?>">

If you only need the first filename, then you could avoid the loop and directly access the first element of the array and use it afterwards:

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

And to display it, you could use sprintf() :

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

Well you could first not create the array in the foreach statement and instead just print the img:

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

Or you could iterate the array.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM