2016-04-04 63 views
0

我的圖片按產品ID組織。 XX-1.jpg XX-2.jpg XX-3.jpg使用php掃描50,000+圖片目錄的快速方式

要查找1種產品的圖像,我使用以下方法。

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

然後我查找數組中的產品ID。 我的確有一個cron作業,可以完成上述操作,並且緩存存儲了每個產品的圖像URL,因此我無需每次都掃描圖像。

我做得對嗎還是有更快速/準確/正確的方法呢?

+3

那麼,如果他們使用產品ID存儲,那麼它不應該只是創建路徑的問題?爲什麼你需要搜索它們?他們已經不在嗎? –

+1

^^和或在產品數據庫中存儲產品圖像文件名稱\位置 – 2016-04-04 00:56:03

+0

我需要對其進行掃描,因爲如果稍後上載新照片或如果我刪除照片該怎麼辦。除非我實際記錄在數據庫中,否則沒有其他辦法可以告訴我是否存在圖像 –

回答

0

您可以使用glob這個

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

爲了完整,註釋的已經給你提示,較少的搜索將導致更少的計算時間。如果您可以跟蹤刪除/插入,則可以使用ID直接構建路徑。

另一個小提示,使用GLOB_NOSORT作爲一個標誌能顯著減少計算時間,如果你不需要排序的元素。