2009-06-19 10 views
6

नीचे दिया गया कोड किसी दिए गए निर्देशिका से 5 छवि फ़ाइलों को पकड़ने के लिए फ़ंक्शन का हिस्सा है।PHP में निर्देशिका से एक्स नवीनतम फ़ाइलों को कैसे प्राप्त करें?

फिलहाल रीडडियर spec के अनुसार छवियों को 'सिस्टम सिस्टम द्वारा संग्रहीत किया जाता है) में लौटाता है।

मेरा सवाल है, मैं नवीनतम 5 छवियों को प्राप्त करने के लिए इसे कैसे संशोधित कर सकता हूं? या तो last_modified दिनांक या फ़ाइल नाम (जो 0000009-16-5-2009.png, 0000012-17-5-2009.png आदि जैसा दिखता है) पर आधारित है।

if ($handle = opendir($absolute_dir)) 
{ 
    $i = 0; 
    $image_array = array(); 

    while (count($image_array) < 5 && (($file = readdir($handle)) !== false)) 
    { 
     if ($file != "." && $file != ".." && $file != ".svn" && $file != 'img') 
     { 
      $image_array[$i]['url'] = $relative_dir . $file; 
      $image_array[$i]['last_modified'] = date ("F d Y H:i:s", filemtime($absolute_dir . '/' . $file)); 
     } 

     $i++; 
    } 
    closedir($handle); 
} 

उत्तर

13

आप PHP में पूरी तरह से ऐसा करना चाहते हैं, तो आप सभी फाइलों और उनके अंतिम संशोधन समय खोजने चाहिए:

$images = array(); 
foreach (scandir($folder) as $node) { 
    $nodePath = $folder . DIRECTORY_SEPARATOR . $node; 
    if (is_dir($nodePath)) continue; 
    $images[$nodePath] = filemtime($nodePath); 
} 
arsort($images); 
$newest = array_slice($images, 0, 5); 
2

तुम सच में केवल चित्रों में रुचि रखते हैं आप glob() इस्तेमाल कर सकते हैं के बजाय soulmerge स्कैंडर:

$images = array(); 
foreach (glob("*.{png,jpg,jpeg}", GLOB_BRACE) as $filename) { 
    $images[$filename] = filemtime($filename); 
} 
arsort($images); 
$newest = array_slice($images, 0, 5); 
1

या आप निर्दिष्ट फ़ोल्डर में नवीनतम 5 फ़ाइलों के लिए फ़ंक्शन बना सकते हैं।

private function getlatestfivefiles() { 
    $files = array(); 
    foreach (glob("application/reports/*.*", GLOB_BRACE) as $filename) { 
     $files[$filename] = filemtime($filename); 
    } 
    arsort($files); 

    $newest = array_slice($files, 0, 5); 
    return $newest; 
} 

बीटीडब्ल्यू सीआई ढांचे का उपयोग कर रहा हूं। चियर्स!

संबंधित मुद्दे