arrays - PHP Recursive function: Get all files and directories within a directory and its sub-directories -


मैंने एक php function लिखा है, जिसके माध्यम से मुझे सभी और निर्देशिका फाइल में किसी विशेष निर्देशिका


1) नीचे मेरी निर्देशिका संरचना है -

  / पृष्ठ (पूर्ण पथ - /home/ubuntu/projects/xyz.com/code/ciapp/views/pages) | | --file1.php | --file2.php | --file3.php | --फोल्डर 1 | --फ़ाइल 4.php | --file5.php | --फोल्डर 2 | --file6.php | --फोल्डर 3 | - -file7.php | --file8.php   


2) मुझे क्या चाहिए सरणी का फ़ाइलें और निर्देशिका < / code> -

  सरणी ([फ़ाइलें] = & gt; सरणी ([0] = & gt; / होम / यूट्यूब / प्रोजेक्ट / एक्सआईज़ / कोड / सीएपी / दृश्य /pages/file1.php [1] = & gt; / होम / यूट्यूब / प्रोजेक्ट / एक्सआईज़ / कोड / सीआईपीएपी / दृश्य / पृष्ठ / फ़ाइल 2. एफ़पीपी [2] = & gt; / होम / यूट्यूब / प्रोजेक्ट / एक्सज़। Com /code/ciapp/views/pages/file3.php [3] = & gt; /home/ubuntu/projects/xyz.com/code/ciapp/views/pages/folder1/file4.php [4] = & gt; / घर /ubuntu/projects/xyz.com/code/ciapp/views/pages/folder1/file5.php [5] = & gt; / होम / यूट्यूब / प्रोजेक्ट / एक्सआईज़ / कोड / सीएपीए / दृश्य / पृष्ठ / फ़ोल्डर 1 / फोल्डर 2 /file6.php [6] = & gt; /home/ubuntu/projects/xyz.com/code/ciapp/views/pages/folder3/file7.php [7] = & gt; /home/ubuntu/projects/xyz.com /code/ciapp/views/pages/folder3/file8.php) [निर्देशिका] = & gt; ऐरे ([0] = & gt; / होम / यूट्यूब / प्रोजेक्ट / एक्सआईज़.को M / code / ciapp / दृश्य / पृष्ठ / फ़ोल्डर 1 [1] = & gt; /home/ubuntu/projects/xyz.com/code/ciapp/views/pages/folder1/folder2 [2] = & gt; /home/ubuntu/projects/xyz.com/code/ciapp/views/pages/folder3))   


3) मुझे क्या मिल रहा है (केवल 1 स्तर) -

  अर्रे ([फ़ाइलें] => अर्रे ([0] = & gt; /home/ubuntu/projects/xyz.com/code/ciapp/views/pages/ File1.php [1] = & gt; / होम / यूट्यूब / प्रोजेक्ट्स / एक्सआईज़ / कोड / सीएपीएपी / दृश्य / पृष्ठ / फ़ाइल 2। PHP [2] = & gt; /होम / यूट्यूब / प्रोजेक्ट / एक्सआईज़ / कोड / Ciapp / views / pages / file3.php) [निर्देशिका] = & gt; ऐरे ([0] = & gt; / होम / यूट्यूब / प्रोजेक्ट / एक्सआईज़ / कोड / सीएपी / दृश्य / पृष्ठ / फोल्डर 1 [1] = & gt; /home/ubuntu/projects/xyz.com/code/ciapp/views/pages/folder3))   


4) मेरा कार्य -

  फ़ंक्शन get_files_directories ($ निर्देशिका, $ a = सरणी ()) {$ dirs = scandir ($ निर्देशिका, 1); $ arr = $ a; विदेशी मुद्रा ($ dirs $ $ dir) {अगर ($ dir! = "।" और $ dir! = '..') {$ new_dir = $ निर्देशिका। '/'। $ Dir; अगर (is_dir ($ new_dir)) {$ arr ['निर्देशिका'] [] = $ new_dir; Get_files_directories ($ new_dir, $ arr); } और {$ arr ['files'] [] = $ new_dir; }}} वापसी $ arr; } $ my_dir = "/home/ubuntu/projects/xyz.com/code/ciapp/views/pages"; $ Files_dirs = get_files_directories ($ my_dir); गूंज '& lt; पूर्व & gt;'; print_r ($ files_dirs);   


मुझे यहाँ क्या याद आ रहा है? सहायता की सराहना की जाएगी Thankyou:)

अपने पथ के साथ $ path स्विच करें, और यह काम करना चाहिए । एसपीएल में रिकर्सिव डायरेक्ट्री ट्रैवर्सल के लिए आवश्यक सभी वर्ग शामिल हैं, अपने आप को रोल करने की कोई आवश्यकता नहीं है।

  & lt;? Php $ path = '।'; '; $ Result = array ('files' = & gt; सरणी (), 'निर्देशिका' = & gt; सरणी ()); $ डायरेक्टरीइटरेटर = नया पुनरावर्ती डायरेक्टरीआइटरेटर ($ पथ); $ IteratorIterator = नया पुनरावर्ती इटरेटर इटरेटर ($ डायरेक्टरीइटरेटर, रिकर्सिव इटरएटर :: एसईएलएफ_फिरस्ट); विदेशी मुद्रा ($ IteratorIterator $ फ़ाइल के रूप में) {$ path = $ file- & gt; getRealPath (); अगर ($ file- & gt; isDir ()) {$ परिणाम ['निर्देशिका'] [] = $ पथ; } अन्यथा ($ file- & gt; isFile ()) {$ परिणाम ['फ़ाइलें'] [] = $ पथ; }} print_r ($ परिणाम);   

अधिक जानकारी के लिए, कृपया PHP दस्तावेज़ देखें:, & amp; महान प्रारंभिक बिंदु हैं!

Comments

Post a Comment

Popular posts from this blog

jasper reports - How to center align barcode using jasperreports and barcode4j -

Verilog Error: output or inout port "Q" must be connected to a structural net expression -

c# - ASP.NET MVC - Attaching an entity of type 'MODELNAME' failed because another entity of the same type already has the same primary key value -