用php扫描50000多个图像目录的快速方法


Fast way of scanning 50,000+ images directory with php

我的图像是按产品id组织的。XX-1.jpgXX-2.jpgXX-3.jpg

为了找到1个产品的图像,我使用以下方法。

$all_images[$resolution]=glob("/home/imgimportsinc/public_html/sharing/images_by_product_id/{$resolution}/*.jpg");

然后我在数组中查找产品id。我确实有一个cron工作可以完成上面的工作,并缓存存储每个产品的图像URL,这样我就不必每次都扫描图像了。

我做得对吗?还是有更快速/准确/正确的方法?

您可以将glob用于此

$dirname = "/home/imgimportsinc/public_html/sharing/";
$images = glob($dirname."*{$resolution}-*.{$extention}");
foreach($images as $image) {
    echo '<img src="'.$image.'" /><br />';
}

为了完整性,注释已经在提示您,更少的搜索将减少计算时间。如果您可以跟踪删除/插入,那么您可以使用id动态构建路径。

另一个小提示是,如果不需要对元素进行排序,则使用GLOB_NOSORT作为标志可以显著减少计算时间。