2011-03-09 12 views
17

इसलिए मुझे यह कोड निर्देशिका के अंदर सभी जेपीजी छवियों को सूचीबद्ध करने के लिए मिला है, लेकिन यह केवल मेरी रूट निर्देशिका पर काम करता है और मुझे नहीं पता कि यह मेरी छवि निर्देशिका में कैसे इंगित करें। मैं PHP ग्लोब को किसी विशिष्ट निर्देशिका में कैसे इंगित कर सकता हूं?

<ul> 
<?php foreach (glob("N*T.jpg") as $image): ?> 
    <li> 
     <a href="<?php echo str_replace("T", "F", $image); ?>"> 
      <img src="<?php echo "$image"; ?>"> 
     </a> 
    </li> 
<?php endforeach; ?> 
</ul> 

क्या कोई मेरी मदद कर सकता है?

उत्तर

35

यह काम करना चाहिए:

glob('images/N*T.jpg'); 

अन्यथा:

chdir('images'); 
glob('N*T.jpg'); 
+0

मुझे chdir दृष्टिकोण पसंद आया। यह वास्तव में मेरे लिए हल हो गया है। धन्यवाद – Jake

+0

मैंने chdir ('छवियों') की कोशिश की; विधि लेकिन chdir (..) का उपयोग कर वापस नहीं मिल सकता; – CodeGuru

+0

@FlyingAtom chdir ('images') काम करेगा यदि आपकी वर्तमान कार्यशील निर्देशिका में कोई छवि फ़ोल्डर है। आप यह जांचना चाहेंगे कि वह getcwd() का उपयोग कर रहा है और आपके व्यवसाय के बाद इसे वापस प्रारंभिक मान में बदल सकता है। यदि यह सीधे पूर्ण पथ का उपयोग नहीं करता है जैसे '/ full/path/to/images' –

14

बस फ़ंक्शन कॉल के लिए पथ तैयार करें।

glob('/path/to/directory/N*T.jpg'); 

ध्यान दें कि परिणामस्वरूप सरणी में भी प्रीपेड पथ होगा। आप ऐसा कर

array_map('basename', glob('/path/to/directory/N*T.jpg')); 
+6

के लिए +1 का उपयोग करने की जरूरत है लौटाए गए मानों में पथ को याद रखना, और array_map समाधान केवल फ़ाइल नाम –

+0

प्राप्त करने के लिए मुझे विश्वास है कि मुझे कोई समस्या है पथ के साथ ... अगर मैं पथ निर्दिष्ट नहीं करता हूं तो मेरी मेजबान रूट पर जाता है और यदि मैं पथ निर्दिष्ट करता हूं तो यह मुझे कोई परिणाम छवि नहीं देता है ... किसी को भी FatCow होस्टिंग के साथ समस्या है? – Jake

+0

@ जेक यदि आप पथ निर्दिष्ट नहीं करते हैं तो यह निर्देशिका का उपयोग करेगा, स्क्रिप्ट को निष्पादित किया जाता है। यदि आप एक पूर्ण पथ निर्दिष्ट करते हैं तो यह सर्वर रूट से एक पूर्ण पथ का उपयोग करेगा (दस्तावेज़ आपकी रूट रूट नहीं है)। शायद यह है कि आपकी समस्या कहां है। – Gordon

1

नहीं करना चाहते हैं बस अपने समारोह कॉल करने के लिए पथ जोड़ें:

glob("/my/path/to/directory/N*T.jpg") 
0

समझने के रूप में glob रूट निर्देशिका के साथ शुरू होता है। उदाहरण के लिए मैं इस

<img src="<?php 
echo $_SERVER['REQUEST_SCHEME']. '://'. $_SERVER['SERVER_NAME']. '/public_images/logo_image_.gif'; 
?>"></img> 

के साथ छवि फिर

echo pathinfo(glob('public_images/logo_image_.*')[0] , PATHINFO_EXTENSION). ' <br/>'; 

कोशिश करते हैं और gif देख देखें। public_images स्थान C:\wamp\www\public_images

है लेकिन

साथ उदाहरण के लिए
echo pathinfo(glob($_SERVER['REQUEST_SCHEME']. '://'. $_SERVER['SERVER_NAME']. 'public_images/logo_image_.*')[0] , PATHINFO_EXTENSION). ' <br/>'; 

Notice: Undefined offset: 0 in C:\wamp\www\show_content.php on line ...

देख लेकिन अगर C:\wamp\www\some_dir कॉल C:\wamp\www\public_images पर स्थित फ़ाइल पर स्थित फ़ाइल से, तो echo pathinfo(glob('../public_images/logo_image_.*')[0] , PATHINFO_EXTENSION)

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

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