Php 对多个产品使用相同图像的产品列表页面
问题-一个网页展示了许多产品,其中一些使用相同的图像 问题-为了提高页面加载速度,我想为每个需要相同图像的产品使用一个图像 作为一个非常业余的PHPer,我考虑过在脚本循环数据库输出时将图像加载到数组中,当发现重复图像时,它使用图像的第一个实例,而不是新版本-到目前为止,我的尝试失败了Php 对多个产品使用相同图像的产品列表页面,php,Php,问题-一个网页展示了许多产品,其中一些使用相同的图像 问题-为了提高页面加载速度,我想为每个需要相同图像的产品使用一个图像 作为一个非常业余的PHPer,我考虑过在脚本循环数据库输出时将图像加载到数组中,当发现重复图像时,它使用图像的第一个实例,而不是新版本-到目前为止,我的尝试失败了 这种方法正确吗非常感谢您的任何帮助和指点除非您谈论的是非常大量的图像,否则在服务器端加载这些图像将使您一事无成 假设您在生成的HTML中使用相同的url从数据库(而不是完整的图像流)中只获得一个图像url,就足以
这种方法正确吗非常感谢您的任何帮助和指点除非您谈论的是非常大量的图像,否则在服务器端加载这些图像将使您一事无成 假设您在生成的HTML中使用相同的url从数据库(而不是完整的图像流)中只获得一个图像url,就足以让浏览器下载一次并缓存它以备将来使用(也称为不下载两次)
注意:如果我假设错误,请更新您的问题,说明如何加载/使用这些图像2表-媒体到产品和媒体,多个产品可以具有相同的媒体id。浏览器应仅加载一次并在前端缓存 媒体到产品 产品标识、媒体标识 媒体
id,filename好的,在上述答案的帮助下,我似乎已经找到了使用以下代码解决问题的方法(这可能不是实现所需结果的最佳或最快的方法,但确实有效!):
在这种情况下,这不会有帮助,因为每个产品都有不同的名称,因此图像也会不同,尽管与其他产品相同的产品也会有不同的名称。如果保存图像并使用新表,例如image\u to\u product和media table。您可以将介质表的唯一id保存到image\u to\u product表中的产品。这样,一个产品也可以有多个图像和共享图像。感谢您的回复-是的,我只从db获得URL,尽管有些图像是相同的(它们由附属机构提供)我为他们指定的名称指的是产品名称,因此您可能有尺寸为6x3的产品A和尺寸为8x6的产品B,两者共享相同的图像,尽管图像的名称不同。我正在尝试为这两种产品使用相同的图像(URL)。希望这有助于澄清我的目标?您可以尝试使用生成图像的哈希,然后用该哈希替换第一个url中的所有重复项(hash_file()也支持url)
<?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();
}
?>