2009-12-27 11 views
7

मेरे पास एक लॉग() विधि है और इसे स्क्रिप्ट के नाम को लॉग करना चाहते हैं जिसे इसे कहा जाता है। PHP में यह कैसे संभव है?मैं स्क्रिप्ट का नाम कैसे प्राप्त कर सकता हूं जिसे फ़ंक्शन कहा जाता है?

+2

http://stackoverflow.com/questions/1935867/finding-out-the-filename-that-called-my-function-in का डुप्लिकेट -php/1 9 35902 – Gordon

उत्तर

11

बुला पर्यावरण के आधार पर आप debug_backtrace पर एक नजर है चाहिए, और $_SERVER['PHP_SELF']

debug_backtrace() आप एक स्टैक ट्रेस दे देंगे भी शामिल है और समारोह अब तक कॉल की, और $_SERVER['PHP_SELF'] आप वर्तमान में क्रियान्वित स्क्रिप्ट बता देंगे, जो आसान है और जो भी आप चाहते हैं उसके लिए भी काम कर सकते हैं। $_SERVER['PHP_SELF'] ब्राउज़र से बुलाया जाने वाला स्क्रिप्ट बहुत अधिक होगा, उदाहरण के लिए, यदि आपके पास blah.com/admin.php और blah.com/articles.php था, तो दोनों को ब्लॉग या किसी चीज़ में सहेजे गए पृष्ठों की सूची प्राप्त करने के लिए /pages.php कहा जाता है, और कुछ गलत हो गया - लॉग आपको बताएगा कि admin.php या articles.php स्क्रिप्ट को कॉल कर रहा था या नहीं। लेकिन अगर pages.php में functions.php शामिल था जिसमें libs.php और libs.php शामिल थे, और आप जानना चाहते थे कि functions.php इसमें शामिल है, यह काम नहीं करेगा - लॉग अभी भी उस स्क्रिप्ट को दिखाएगा जिसमें शामिल है (admin.php या articles.php)। इस मामले में आप debug_backtrace() का उपयोग करेंगे।

+0

'debug_backtrace()' के लिए धन्यवाद। ये अदभुत है! – neoDev

3

आप debug_backtrace समारोह पर एक नज़र ले जा सकते हैं: यह उत्पादन है में, आप के लिए ;-)

क्या देख रहे आप this answer को एक बार देख ले सकते हैं मैं पहले कुछ दिनों के पोस्ट, और अधिक के लिए खोजना चाहिए सूचनाएं, और एक उदाहरण।

+0

उस लिंक में सभी 'सूचनाएं' देखें! मैं सूचना खोद रहा हूँ! lol – pythonian29033

0

उपयोग debug_backtrace() पूरा callstack युक्त एक साहचर्य सरणी हो और विवरण आप इसे से रुचि रखते हैं खींचने के लिए सरणी की जांच।

0

पहले से ही बहुत कम तकनीकी जवाब दिए गए उत्तरों के अलावा _ _ FILE _ _ या बेसनाम() को लॉगिंग की जा रही स्ट्रिंग में जोड़ना होगा। (इसे प्रदर्शित करने के लिए फ़ाइल में डबल अंडरस्कोर में रिक्त स्थान जोड़ना था)

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

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