2011-12-14 7 views
6

मैं सीएलआई से एक PHP स्क्रिप्ट चला रहा हूं कि उपयोगकर्ता PHP में DirectoryIterator::getExtension() विधि उपयोगकर्ता।DirectoryIterator :: getExtension() संस्करण

PHP के संस्करण मैं के तहत चल रहा हूँ 5.3.5 है, लेकिन मैं हो रही त्रुटियों कह Fatal error: Call to undefined method DirectoryIterator::getExtension()

स्क्रिप्ट मेरे स्थानीय देव मशीन में ठीक काम करता है PHP 5.3.6 चल रहा है, कोई त्रुटि के साथ रहते हैं। हालांकि, PHP मैन में page for DirectoryIterator::getExtension() संस्करण का कोई उल्लेख नहीं है।

क्या कोई मुझे बता सकता है कि मुझे इस विधि का उपयोग करने के लिए किस संस्करण की आवश्यकता है?

+3

बदलाव का ('NEWS') कहते हैं कि यह था वास्तव में 5.3.6 में पेश किया गया। 'जोड़ा गया SplFileInfo :: getExtension()। एफआर # 48767.' – mario

उत्तर

5

From the documentation:

(कोई संस्करण जानकारी उपलब्ध है, केवल SVN में हो सकता है)

यह की तरह लगता है, प्रतिबद्ध पीएचपी 5.3.5 का निर्माण नहीं किया लेकिन चढ़ गया 5.3.6 रिलीज। पृष्ठ अभी तक अपडेट नहीं किया गया है।

और के रूप में मारियो ने कहा, 5.3.6 changelog अलावा उल्लेख है:

  • एसपीएल विस्तार:
    • ...
    • जोड़ा गया SplFileInfo :: getExtension()। एफआर # 48767। (पीटर Cowburn)
+2

धन्यवाद। मुझे लगता है कि मुझे इसके बजाय pathinfo() का उपयोग करना होगा। कोई अन्य विचार? धन्यवाद। – julio

+0

@julio: पिछले 5.3.5 में अपने लाइव संस्करण को अपडेट करने के अलावा, ऐसा लगता है कि आप ऐसा कर सकते हैं। –

1

कोई आश्चर्य नहीं कि, मैं getExtension हो रही है()। हालांकि यह दस्तावेज है, यह 5.3.5 के बीच नहीं है। मैं लापता getExtension() के लिए इस समाधान का उपयोग कर रहा हूँ:

foreach($iter as $splFileInfo) { 

    $fileName = $splFileInfo->getFilename(); 

    $pos_dot = strrpos($fileName, "."); // find '.' 

    $ext = ($pos_dot !== false) ? substr($fileName, $pos_dot+1) : null; 
    //. . . 
} 
8

इस फाइल एक्सटेंशन पाने के लिए एक बहुत सरल तरीका है, IMO:

<?php 
    $iterator = new DirectoryIterator($data_dir); 
    foreach($iterator as $entity) { 
    if($entity->isFile()) { 
     $file_extension = pathinfo($entity->getFilename(), PATHINFO_EXTENSION); 
     ... 
    } 
    } 
?> 
संबंधित मुद्दे