2013-04-02 12 views
142

PHP के साथ एक निर्देशिका में सभी फ़ाइलों को सूचीबद्ध करने का सबसे अच्छा तरीका क्या होगा? क्या ऐसा करने के लिए $ _SERVER फ़ंक्शन है? मैं उपयोगकर्ता नाम/निर्देशिका में सभी फ़ाइलों को सूचीबद्ध करना चाहता हूं और उस परिणाम पर लूप को एक लिंक के साथ सूचीबद्ध करना चाहता हूं, ताकि मैं वहां पहुंचने के लिए फ़ाइल नाम के हाइपरलिंक पर क्लिक कर सकूं। धन्यवाद!सभी फ़ाइलों को एक निर्देशिका में सूचीबद्ध करें PHP

+7

ग्लोब() या scandir() स्पष्ट विकल्प हैं –

+0

आपको एक कोड उन कार्यों का उपयोग करता है का एक उदाहरण दे सकता है , या उनके बारे में और अधिक समझाओ? – Shadowpat

+1

उदाहरण और स्पष्टीकरण के लिए - दस्तावेज वास्तव में जाने के लिए सबसे अच्छी जगह है ... यह आधिकारिक स्रोत है ... – Lix

उत्तर

157

इस की जाँच करें: readdir()

कोड के इस बिट एक निश्चित निर्देशिका में सभी प्रविष्टियों में सूचीबद्ध करना चाहिए:

if ($handle = opendir('.')) { 

    while (false !== ($entry = readdir($handle))) { 

     if ($entry != "." && $entry != "..") { 

      echo "$entry\n"; 
     } 
    } 

    closedir($handle); 
} 

संपादित: Miah के समाधान ज्यादा मेरा की तुलना में अधिक सुंदर है, तो आप चाहिए इसके बजाय अपने समाधान का उपयोग करें।

+1

यह काम किया! धन्यवाद! – Shadowpat

+0

मदद करने में खुशी :) –

+0

वहां, मैंने अभी इसे हाइपरलिंक भी शामिल किया है! :) – Shadowpat

320

आप scandir कमांड की तलाश में हैं।

$path = '/tmp'; 
$files = scandir($path); 

के बाद कोड scandir से लौटे सरणी से . और .. निकाल देगा:

$files = array_diff(scandir($path), array('.', '..')); 
+0

धन्यवाद, लेकिन @ ओरल बिटन ने एक और कोड पोस्ट किया जिसका मैं उपयोग करूंगा। हालांकि मैं आपकी मदद की सराहना करता हूं! – Shadowpat

+18

यह एक बहुत ही सुरुचिपूर्ण समाधान है। – Christian

+65

यह अधिक सुरुचिपूर्ण समाधान है।मैं $ फ़ाइलों को जोड़/अनुशंसा करता हूं = array_diff (स्कैंडर ($ पथ), सरणी ('..', '।')); – kyle

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

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