2011-01-16 15 views
6


मेरे पास एक फ़ोल्डर है। मैं इस फ़ोल्डर में प्रत्येक फ़ाइल को एक सरणी में रखना चाहता हूं और बाद में मैं उन्हें सभी को फ़ोरैच लूप में गूंजना चाहता हूं।
ऐसा करने का सबसे अच्छा तरीका क्या है?
धन्यवाद!निर्देशिका की सूची (php)

उत्तर

15

Scandir आप के लिए http://php.net/manual/en/function.scandir.php

<?php 
$dir = '/tmp'; 
$files1 = scandir($dir); 

print_r($files1); 
?> 

या का उपयोग opendir के संयोजन और readdir http://php.net/manual/en/function.readdir.php

+0

मुझे लगता है कि यह 'readdir' से बेहतर है, भले ही यह केवल PHP 5 है। उदाहरण के कारण +1। – Donovan

1

इस

http://ca3.php.net/manual/en/function.scandir.php

से बहुत आसान नहीं मिलती मत भूलना (वे एक बिंदु के साथ शुरू करते हैं) को फिल्टर करने लिनक्स पर छिपे रहते हैं और माता-पिता निर्देशिका।

0

संपादित करें क्या देख रहे हैं: dwich जवाब बेहतर है। मैं सिर्फ जानकारी के लिए इसे छोड़ दूंगा।

readdir

<?php 

if ($handle = opendir('/path/to/dir')) { 
    echo "Directory handle: $handle\n"; 
    echo "Files:\n"; 

    while (false !== ($file = readdir($handle))) { 
     echo "$file\n"; 
    } 

    closedir($handle); 
} 
?> 

उम्मीद है कि इससे मदद मिलती है।
-Alberto

1

एक विकल्प:

define('PATH', 'files/'); 

$filesArray = array(); 
$filesArray = glob(PATH . '*', GLOB_ONLYDIR); 

यह विधि आपको फ़ाइल प्रकार द्वारा निर्दिष्ट करने के लिए/फिल्टर एक अनुमति देते हैं। E.G.,

define('PATH', 'files/'); 
define('FILE_TYPE', '.jpg'); 

$filesArray = array(); 
$filesArray = glob(PATH . '*' . FILE_TYPE, GLOB_ONLYDIR); 

तुम भी फाइल करने के लिए पूर्ण पथ नाम पैरामीटर को हटाने के द्वारा प्राप्त कर सकते हैं 'GLOB_ONLYDIR'

1

इसमें उप-फ़ोल्डर में फ़ाइलों और फ़ोल्डरों के लिए भी काम करता है। फ़ोल्डर्स की वापसी सूची और उनके पथ के साथ फाइलों की सूची।



    $dir = __DIR__; //work only for this current dir 
    function listFolderContent($dir,$path=''){ 
     $r = array(); 
     $list = scandir($dir); 
     foreach ($list as $item) { 
      if($item!='.' && $item!='..'){ 
       if(is_file($path.$item)){ 
        $r['files'][] = $path.$item; 
       }elseif(is_dir($path.$item)){ 
        $r['folders'][] = $path.$item; 
        $sub = listFolderContent($path.$item,$path.$item.'/'); 
        if(isset($sub['files']) && count($sub['files'])>0) 
         $r['files'] = isset ($r['files'])?array_merge ($r['files'], $sub['files']):$sub['files']; 
        if(isset($sub['folders']) && count($sub['folders'])>0) 
         $r['folders'] = array_merge ($r['folders'], $sub['folders']); 
       } 
      } 
     } 
     return $r; 
    } 
    $list = listFolderContent($dir); 
    var_dump($list['files']); 
    var_dump($list['folders']); 
संबंधित मुद्दे