产品列表页面对多个产品使用相同图像

时间:2014-08-20 12:07:06

标签: php

问题 - 网页展示了许多产品,其中一些产品使用相同的图像。

问题 - 为了提高页面加载速度,我想为每个需要相同图像的产品使用一个图像。

作为一个非常业余的PHPer,我考虑将图像加载到数组中,因为脚本循环遍历数据库输出,当找到重复的图像时,它使用图像的第一个实例而不是新版本 - 到目前为止我的尝试失败了!

这种方法是否朝着正确的方向发展? - 任何帮助,指点非常感谢

3 个答案:

答案 0 :(得分:0)

除非你谈论非常多的图片,否则在服务器端加载这些图片会让你无处可去。

假设您只使用生成的HTML中的相同网址从您的数据库(而不是完整的图像流)获取图像网址,这将足以让浏览器只下载一次并将其缓存以备将来使用(也就是说下载两次)

P.S。:如果我认为错误,请更新您的问题,说明您如何加载/使用这些图像

答案 1 :(得分:0)

好的,在上述答案的帮助下,我似乎找到了使用以下代码解决问题的方法(它可能不是实现所需结果的最佳或最快方式,但它确实有效!):< / p>

    <?php
    $image=array();  // create array outside of loop

    // START loop

    while (!$rsRESULTS->EOF) { 

    $src="url-of-image";

    $imageFile= file_get_contents($src) ; // make image into a file

    if(in_array($imageFile,$image)){ // check if file is already in array

    $imageID= array_search ($imageFile,$image); // if yes, then get the key from the        matching value

    $src="http://www.log-cabin.co/_images/affiliates/shedstore/".$imageID.".jpg";

    }else{
    $key=$rsRESULTS->Fields('id'); // set up key using unique identifier
    $image[$key]=$imageFile; // if not already in array add file to array using file name as key
    }

    // SHOW PRODUCT RESULTS INCLUDING PICTURE HERE
    // END loop
    $rsRESULTS->MoveNext(); 
    }
    ?>

答案 2 :(得分:-1)

2表 - media_to_product和媒体,多个产品可以拥有相同的media_id。浏览器只应加载一次并在前端缓存。

<强> media_to_product

product_id,media_id

媒体

ID,文件名