2016-04-04 12 views
0

Meine Bilder sind nach Produkt-ID organisiert. XX-1.jpg XX-2.jpg XX-3.jpgSchnelle scans 50,000+ Bilder Verzeichnis mit php

Um die Bilder von 1 Produkt zu finden, verwende ich die folgende Methode.

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

Und dann suche ich nach der Produkt-ID im Array. Ich habe einen Cron-Job, der das obige tut und speichert die Bild-URLs für jedes Produkt im Cache, so dass ich nicht jedes Mal nach den Bildern suchen muss.

Mache ich es richtig oder gibt es eine schnellere/genauere/richtige Vorgehensweise?

+3

Nun, wenn sie mit der Produkt-ID gespeichert werden, sollte es nicht nur eine Frage der Erstellung des Pfades sein? Warum musst du nach ihnen suchen? Sind sie nicht schon da? –

+1

^^ und oder speichern Produktbild Dateiname \ Standort in der Datenbank mit dem Produkt –

+0

Ich muss es scannen, weil was ist, wenn ich ein neues Bild zu einem späteren Zeitpunkt hochladen oder was, wenn ich ein Bild löschen. Es gibt keinen anderen Weg für mich zu sagen, ob ein Bild existiert oder nicht, es sei denn ich in der Datenbank notieren –

Antwort

0

Sie glob für dieses

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

Zur Vollständigkeit der Kommentar des bereits Sie Hinweise werden können geben, dass weniger Suche in weniger Rechenzeit zur Folge hat. Wenn Sie einfach die Löschung/Einfügung verfolgen könnten, können Sie die Pfade einfach mit den IDs erstellen.

Noch ein kleiner Hinweis, mit GLOB_NOSORT als Flag deutlich die Rechenzeit verringern könnte, wenn Sie sortiert die Elemente nicht brauchen.