2012-03-07 20 views
6

मैं "।" पर विस्फोट कर रहा हूं। फ़ाइल प्रारूप और नाम प्राप्त करने के लिए:फ़ाइल एक्सटेंशन प्राप्त करें

list($txt, $ext) = explode(".", $name); 

समस्या यह है कि कुछ फ़ाइलों के पास बिंदुओं के साथ नाम हैं।

मैं आखिरी बार कैसे बता सकता हूं। " ताकि मुझे $name=pic.n2 और $ext=jpg मिलें: pic.n2.jpg?

+1

क्या आप स्थानीय फ़ाइल या यादृच्छिक पाठ के साथ काम कर रहे हैं? – Morgon

+0

संभावित डुप्लिकेट [PHP में फ़ाइल एक्सटेंशन कैसे निकालें?] (Http://stackoverflow.com/questions/173868/how-to-extract-a-file-extension-in-php) – Unsigned

उत्तर

15

उपयोग pathinfo:

अधिक जानकारी यहाँ http://php.net/manual/en/function.pathinfo.php

$file_part = pathinfo('123.test.php'); 

उदाहरण देखें

+०१२३५१६४१०
$pi = pathinfo($name); 
$txt = $pi['filename']; 
$ext = $pi['extension']; 
+0

बहुत बढ़िया, और अधिक सुरुचिपूर्ण मेरे समाधान –

1

PHP के pathinfo() फ़ंक्शन का उपयोग करें।

echo $file_part['extension']; 
echo $file_part['filename']; 

आउटपुट::

php 123.test

5

उपयोग इस

$array = explode(".", $name); 
end($array);   // move the internal pointer to the end of the array 
$filetype = current($array); 

धन्यवाद

+0

से * वर्तमान तत्व * प्राप्त करने के आपके 'कुंजी' चौराहे के रास्ते के बजाय 'वर्तमान' फ़ंक्शन भी है। – deceze

+0

धन्यवाद आप सही हैं –

+1

'$tytype = end ($ array); 'यह भी काम करता है। अंतिम अतिरिक्त लाइन की कोई ज़रूरत नहीं है। – Giraldi

0

आप अपने खुद के समारोह में लिख सकते हैं

रूप

समारोह getExtension ($ s tr) {

$ i = strrpos ($ str, "।");

अगर (! $ I) {वापसी ""; }

$ l = strlen ($ str) - $ i;

$ ext = substr ($ str, $ i + 1, $ l);

$ ext वापस;

}

1

उपयोग Pathinfo या mime_content_type फ़ाइल प्रकार जानकारी

$filetype = pathinfo($file, PATHINFO_FILENAME); 

$mimetype = mime_content_type($file); 
0

आप कुछ इस तरह की कोशिश कर सकते प्राप्त करने के लिए: जो पाता है

strrpos
<?php 
$file = 'a.cool.picture.jpg'; 

$ext = substr($file, strrpos($file, '.')+1, strlen($file)-strrpos($file, '.')); 
$name = substr($file, 0, strrpos($file, '.')); 
echo $name.'.'.$ext; 
?> 

महत्वपूर्ण कार्य कर रहे हैं() एक चरित्र की अंतिम घटना (इस मामले में एक "।") और substr() जो एक उप स्ट्रिंग देता है। आपको अंतिम "।" मिल गया फ़ाइल में, और उप स्ट्रिंग। उम्मीद है की वो मदद करदे।

+0

मुझे विस्फोट समारोह भी पसंद है, हालांकि फ़ाइल नाम प्राप्त करने के लिए लूपिंग या इम्प्लोडिंग की आवश्यकता होती है, जबकि यह बिंदु पर अधिक है। (मैसी कोड जैसा है, दिया गया है।) – Jason

+0

आपको 'substr', 'substr ($ file, strrpos ($ file,'। ') + 1) को तीसरा तर्क प्रदान करने की आवश्यकता नहीं है,' अकेले खोजने के लिए ठीक है विस्तार। – deceze

1
<?php 
$path = 'http://www.mytest.com/public/images/portfolio/i-vis/abc.y1.jpg'; 
echo $path."<br/>"; 
$name = basename($path); 
$dir = dirname($path); 
echo $name."<br/>"; 
echo $dir."<br/>"; 
$pi = pathinfo($path); 
$txt = $pi['filename']."_trans"; 
$ext = $pi['extension']; 
echo $dir."/".$txt.".".$ext; 
?> 
0

यह ऊपर समाधानों में से एक का उपयोग करने के लिए बेहतर है, लेकिन वहाँ भी एक समाधान विस्फोट समारोह का उपयोग कर रहा है:
1. रिवर्स स्ट्रिंग:

$filename = "some.file.name.ext"; 
list($ext, $name) = explode(".", strrev($filename), 2); 
$name = strrev($name); 
$ext = strrev($ext); 

क्या इस समाधान करता है निम्नलिखित है , तो यह इस तरह दिखेगा: txe.eman.elif.emos
2. इसे विस्फोट करें, आपको कुछ मिल जाएगा: $ ext = "txe", $ name = "eman.elif.emos"
3. प्रत्येक को उलट दें सही परिणाम प्राप्त करने के लिए चर के

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