2012-08-28 21 views
8

मुझे सभी उपलब्ध PHP एक्सटेंशन खोजने के लिए एक तरीका चाहिए, चाहे वे लोड हों या नहीं। मैंने How do I see the extensions loaded by PHP? देखा लेकिन यह केवल बताता है कि लोड किए गए एक्सटेंशन कैसे ढूंढें। मैं अनलोड किए गए एक्सटेंशन को ढूंढने का एक तरीका भी चाहता हूं।उपलब्ध स्थान (लोड नहीं किया गया) PHP एक्सटेंशन

php.ini से extension_dir को जानना मैंने ls /extension_dir/*.so किया जो 26 प्रविष्टियों को वापस कर दिया। जब मैंने php -m के साथ प्रयास किया, तो मुझे 57 प्रविष्टियां मिलीं। यह कैसे संभव है?

मुझे कैसे पता चलेगा कि कौन से PHP एक्सटेंशन लोड होने के लिए उपलब्ध हैं? मैं नहीं जानना चाहता कि कौन से लोड किए गए हैं लेकिन लोड करने योग्य हैं।

+2

कुछ एक्सटेंशन कोई बाहरी फ़ाइल के साथ निर्मित कर रहे हैं। –

+1

बस निर्देशिका में एक्सटेंशन लाइब्रेरी डालने का अर्थ यह नहीं है कि वे php द्वारा लोड किए गए हैं। http://docs.php.net/manual/en/ini.core.php#ini.extension – VolkerK

+0

@matteo Tassinari देखें, कैसे? क्या यह संकलन समय पर परिभाषित किया गया है या यह php का हिस्सा है? – maazza

उत्तर

2

यदि आप संभावित रूप से लोड करने योग्य एक्सटेंशन की सूची चाहते हैं, तो आपको PHP_SHLIB_SUFFIX के मान के बराबर एक्सटेंशन के साथ फ़ाइलों की सूची प्राप्त करनी चाहिए, और यह निर्देशिका में है जहां PHP PHP एक्सटेंशन (<install-dir>/lib/php/extensions/<debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO) के लिए जांच करता है। यदि आप पहले से लोड किए गए एक्सटेंशन से बचना चाहते हैं, तो आपको एक्सटेंशन का नाम (फ़ाइल एक्सटेंशन के बिना) extension_loaded() पर पास करना चाहिए।

ध्यान रखें कि सही फ़ाइल एक्सटेंशन वाली फ़ाइल को PHP से एक्सटेंशन के रूप में लोड नहीं किया जा सकता क्योंकि फ़ाइल में सही संरचना नहीं है (उदाहरण के लिए क्योंकि फ़ाइल दूषित है), या क्योंकि PHP एक्सटेंशन से निर्भर करता है फ़ाइलें जो एक्सटेंशन नहीं मिलती हैं, या यह लोड करने में सक्षम नहीं है।

phpinfo(); 

तब फ़ाइलें देखने के लिए निर्देशिका स्कैन:

+0

को सूचीबद्ध करके उपलब्ध एक्सटेंशन को कैसे सूचीबद्ध किया जाए, इस संपूर्ण उत्तर के लिए धन्यवाद – maazza

4

ध्यान रखें कि कुछ एक्सटेंशन PHP में स्थिर रूप से बना सकते हैं। आप इन्हें php.ini में एक्सटेंशन के रूप में सूचीबद्ध करेंगे, लेकिन आप उन्हें अक्षम करने में सक्षम नहीं होंगे, और ज्यादातर मामलों में आपको php.ini या .so/.DLL में संदर्भित एक एक्सटेंशन = लाइन दिखाई नहीं देगी। फ़ाइलें। को स्थिर रूप से संकलित एक्सटेंशन को PHP को पुनः संयोजित करने की आवश्यकता होती है, और में अधिकांश मामलों की आवश्यकता होती है क्योंकि अधिकांश सांख्यिकीय रूप से संकलित एक्सटेंशन में कोर कार्यक्षमता शामिल होती है जिसे शायद ही कभी हटा दिया जाना चाहिए।

http://arr.gr/blog/2012/06/on-php-extensions/

धन्यवाद Matteo Tassinari को जाता है।

+0

+1 अपने आप को जवाब देने के लिए +1 –

+0

इस सवाल का जवाब किस तरह से किया जा रहा है? – kiamlaluno

+0

स्थिर रूप से एक्सटेंशन पहले से ही सक्षम नहीं हैं? यदि प्रश्न अभी भी लोड होने के बारे में है, तो इसमें स्थिर रूप से जुड़े एक्सटेंशन शामिल नहीं हैं। – kiamlaluno

1

एक तरह से 'extension_dir' मान की जाँच करने के लिए है

$exts = scandir("/usr/lib/php5/extension_dir/"); 
print_r($exts); 
संबंधित मुद्दे