使用PHP显示多个图像

时间:2012-07-28 22:38:45

标签: php mysql html

我有这个PHP脚本,可以从数据库中返回图片。我现在使用循环一次返回5张图片,但我认为它们都重叠,所以我只看到一张。如何将每张图片移动几个像素,以便我可以看到其他图片?

<?php
    $mysqli=mysqli_connect('localhost','root','','draftdb');
    if (!$mysqli)
    die("Can't connect to MySQL: ".mysqli_connect_error());

    $param = isset($_GET['rarity']) ? $_GET['loopcount'] :null;

    $stmt = $mysqli->prepare("SELECT display.PICTURE_ID 
    FROM cards  
    INNER JOIN display ON cards.DISPLAY_ID = display.DISPLAY_ID 
    WHERE display.DISPLAY_ID=? AND cards.CARD_TYPE =?" );

    $cardtype='Rare';


    for ($i=0; $i<=5; $i++) 
    {
      $num[$i] = rand(16,30);
       for ($j=0; $j<$i; $j++) 
       {            
          while ($num[$j] == $num[$i])
          {              
             $num[$i] = rand(16,30);   
          }          

                   $displayid= array_shift($num);   

       }   



    $stmt->bind_param("si", $displayid, $cardtype);
    $stmt->execute();
    $stmt->bind_result($image);
    $stmt->fetch();
    header("Content-Type: image/jpeg");
    echo $image; 
    }


    ?>

2 个答案:

答案 0 :(得分:3)

您无法显示&#34;用php的图像。您可以使用<img>标记使用HTML执行此操作。你所做的是打印原始图像数据,然后告诉浏览器它是一张图片。我不确定如果你这样做并打印多张图片会发生什么,但是浏览器应该如何处理它。

如果您将它们作为blob存储在数据库中,则有时会使用一个图像完成此操作。但不是出于展示它们的目的。

如果要合并图像,可以使用PHP中的GD库执行此操作。

答案 1 :(得分:2)

您只能使用Content-Type: image/jpeg将一张图片发送到浏览器。我可以想到两种方式发送多张图片。

1.使用GD制作包含所有其他图片的新照片并发送。

2.发送HTML页面而不是图片:

<?php 
//some code which gets the images and puts them in an array - $images
?>
<!DOCTYPE HTML>
<html>
<body>
<?php foreach($images as $image):?>
    <img src="data:image/jpeg;base64,<?php echo base64_encode($image);?>"/><br/>
<?php endforeach;?>
</body>
</html>

编辑:浏览器很难快速解析非常大的HTML文档,因此如果您有大量或大量的图像,最好将它们加载到单独的HTTP请求中(src="image.php?image=xxxx")。