दिलचस्प पोस्ट
यूनिट परीक्षण फ़ाइल I / O मापांक विभाजन (%) केवल पूर्णांक के साथ काम क्यों करता है? सेलेनियम वेबड्राइवर ब्राउज़र पॉपअप बंद कैसे करें Java.sql.PreparedStatement से क्वेरी प्राप्त करें बहुलोफिक एसोसिएशन में आप एक विदेशी कुंजी क्यों नहीं हो सकते? ViewModel के साथ बाध्य करने से MVVM डायनेमिक मेनू UI कंसोल समापन समस्या का मुकाबला करने के लिए सर्वश्रेष्ठ अभ्यास क्या है? डिवाइस घुमाए जाने पर मेरी कॉर्डोबा / फोनगैप आईओएस एप क्यों नहीं घुमाएं? मैं PHP में यूआरएल को कैसे पार्स कर सकता हूं? गोल के किनारों को बॉक्स के अंदर और उसकी सीमा के दोनों किनारों को कैसे बनाया जाए? अपाचे त्रुटि माता-पिता: बच्चे की स्थिति स्थिति 3221225477 से बाहर निकल गई – पुनः आरंभ फंक्शन आरजीएस में कॉन्स्ट और कॉन्फ संदर्भ का उपयोग करने के दौरान एएसपी। नेट 2012 जेनोवा के साथ विनीत मान्यकरण वादे के बारे में / ए + विशिष्टता, "तोनीय" और "वादा" के बीच अंतर क्या है? PostgreSQL अनुक्रम का उपयोग सीतनिद्रा में होना अनुक्रम तालिका को प्रभावित नहीं करता है

कैसे PHP में स्कैंडर का उपयोग केवल छवियों को पाने के लिए?

उपयोग करते समय jpeg , png , gif आदि एक्सटेंशन के साथ केवल छवियां प्राप्त करने का कोई तरीका क्या है?

 $dir = '/tmp'; $files1 = scandir($dir); 

Solutions Collecting From Web of "कैसे PHP में स्कैंडर का उपयोग केवल छवियों को पाने के लिए?"

आप glob उपयोग कर सकते हैं

 $images = glob('/tmp/*.{jpeg,gif,png}', GLOB_BRACE); 

यदि आपको इसकी आवश्यकता होती है तो आप असंवेदनशील हो सकते हैं, आप एक DirectoryIterator array_map का उपयोग array_map साथ संयोजन में कर सकते हैं या RegexIterator के परिणाम को scandir कर array_map और कॉलबैक का उपयोग कर सकते हैं जो कि किसी भी अवांछित एक्सटेंशन को फ़िल्टर कर सकता है। चाहे आप fnmatch , fnmatch या pathinfo का विस्तार करने के लिए आप पर निर्भर हैं

वास्तविक प्रश्न स्कैंडिअर का प्रयोग कर रहा था और उत्तर में ग्लोब में समाप्त हुआ। दोनों में काफी अंतर है जहां ब्लॉब काफी भारी है। एक ही फिल्टरिंग निम्न कोड का उपयोग करते हुए स्कैन्डीर के साथ किया जा सकता है:

 $images = preg_grep('~\.(jpeg|jpg|png)$~', scandir($dir_f)); 

मुझे उम्मीद है कि यह किसी को मदद करेगा

मैं फ़ाइलों के माध्यम से पाश होगा और उनके एक्सटेंशन को देखें:

 $dir = '/tmp'; $dh = opendir($dir); while (false !== ($fileName = readdir($dh))) { $ext = substr($fileName, strrpos($fileName, '.') + 1); if(in_array($ext, array("jpg","jpeg","png","gif"))) $files1[] = $fileName; } 

यहां केवल छवियां प्राप्त करने का एक आसान तरीका है PHP> = 5.2 संस्करण के साथ काम करता है। एक्सटेंशन का संग्रह लोअरकेस में है, जिससे लूप में फ़ाइल एक्सटेंशन को लोअरकेस बनाकर इसे केस असंवेदनशील बना दिया गया है।

 // image extensions $extensions = array('jpg', 'jpeg', 'png', 'gif', 'bmp'); // init result $result = array(); // directory to scan $directory = new DirectoryIterator('/dir/to/scan/'); // iterate foreach ($directory as $fileinfo) { // must be a file if ($fileinfo->isFile()) { // file extension $extension = strtolower(pathinfo($fileinfo->getFilename(), PATHINFO_EXTENSION)); // check if extension match if (in_array($extension, $extensions)) { // add to result $result[] = $fileinfo->getFilename(); } } } // print result print_r($result); 

मुझे आशा है कि यह उपयोगी है अगर आप केस असंवेदनशील और छवि केवल एक्सटेंशन चाहते हैं

आप परिणामी सरणी को बाद में खोज सकते हैं और आपके मानदंडों से मेल नहीं खाए गए फ़ाइलों को त्याग सकते हैं।

scandir आपके पास कार्यशीलता नहीं है

यदि आप एक निर्देशिका को स्कैन करना चाहते हैं और फ़ाइल नाम वापस केवल आप इसका उपयोग कर सकते हैं:

 $fileNames = array_map( function($filePath) { return basename($filePath); }, glob('./includes/*.{php}', GLOB_BRACE) ); 

scandir() वापस आ जाएगा और .. साथ ही फाइलें, इसलिए उपरोक्त कोड क्लीनर है अगर आपको सिर्फ फाइलनाम की आवश्यकता है या आप वास्तविक फाइलपथों के साथ अन्य चीजों को करना चाहते हैं