2010-03-26 12 views
6

अभी, जब मुझे अपनी PHP वेबसाइट पर किसी पृष्ठ पर कोई समस्या दिखाई देती है, तो मुझे URL को देखना होगा, मानसिक रूप से उस पृष्ठ को प्रदर्शित करने के लिए कौन सी फ़ाइल ज़िम्मेदार है, फिर नेविगेट करें उस फ़ाइल को खोलने के लिए ग्रहण पीडीटी फ़ाइल पेड़। यह कष्टप्रद है और मस्तिष्क शक्ति का उपयोग करता है जो इसके बजाय इस मुद्दे को हल करने के लिए लागू किया जा सकता था।वेब से ग्रहण में स्थानीय फ़ाइल खोलना

मैं अपनी PHP वेबसाइट को प्रत्येक पृष्ठ पर एक लिंक पर प्रदर्शित करना चाहता हूं जिसे मैं एक्लिप्स में सही फ़ाइल को स्वचालित रूप से खोलने के लिए क्लिक कर सकता हूं।

मैं फ़ाइल को खोलने की आवश्यकता के लिए पूर्ण पूर्ण पथ की आसानी से गणना कर सकता हूं (उदाहरण के लिए, खुले सी: /xampp/htdocs/controllers/Foo/Bar.php पर जाकर/foo/bar), और मैं कर सकता हूं सुनिश्चित करें कि ग्रहण वर्तमान में लोड की गई सही परियोजना के साथ खुला है, लेकिन मैं इस बात पर फंस गया हूं कि मैं फ़ायरफ़ॉक्स/क्रोम/आईई को उस विशिष्ट फ़ाइल को खोलने के लिए ग्रहण कैसे कह सकता हूं।

संपादित

मैं एक डेटा के रास्ते जा रहा हूँ:, यूआरआई मेरी फाइल करने के लिए एक लिंक फ़ाइल का नाम शामिल है, एक असामान्य MIME प्रकार के साथ जोड़कर।

<a href="data:link/php;base64,IkM6XHhhb[snip]GhwIgo="> 
    View controller 
</a> 

बेस 64-एन्कोडेड सामग्री मेरे कंप्यूटर पर फ़ाइल का पूर्ण पथ है। जब मैं लिंक पर क्लिक करें, फायरफॉक्स मुझे एक नया आवेदन करने के लिए सामग्री प्रकार बाँध देता है, तो मैं एक बैच फ़ाइल मैं अपने आप को लिखा चुना है:

for /f "delims=" %%i in (%1) do (
    notepad.exe "%%i" 
) 

यह काम करता है। अब, मैं ग्रहण की पहले से खोले गए विंडो में फ़ाइल को खोलना चाहूंगा। उपर्युक्त बैच में notepad.exe को बदलने के लिए मुझे क्या करना है?

उत्तर

3

[pathtoeclipse] \ eclipsec.exe -name ग्रहण --launcher.openFile [fullpathtoyourfilehere]

मैं अगर यह गैलीलियो (i Helios पर हूँ)

अतिरिक्त पठन साथ काम करता है यकीन नहीं है: https://bugs.eclipse.org/bugs/show_bug.cgi?id=4922 (यह एक लंबी, लंबी कहानी है)

+0

एक लंबी लेकिन __interesting__ कहानी। चेतावनी देने के लिए आपका धन्यवाद। मेरे संस्करण की तरह लगता है जल्द ही काम नहीं करेगा ... –

2

मैंने अतीत में इसी तरह की चीजों की कोशिश की है, लेकिन यह उतना आसान नहीं है जितना होना चाहिए। अंत परिणाम हमेशा था कि फ़ायरफ़ॉक्स को स्थानीय फ़ाइल निष्पादित करने के लिए एक एक्सटेंशन की आवश्यकता होगी (मुझे कभी ऐसा नहीं मिला जो नौकरी करेगा), और आईई इसे और भी नहीं करेगा (बचाओ, शायद, कुछ जटिल स्वामित्व वाले वीबीस्क्रिप्ट/WScript)।

मैं दो तरीके दिए ऐसा करने के लिए देखें:

  1. कि एक बड़ा वसा संवाद खिड़की में अपने पृष्ठ पर फ़ाइल पथ प्रदर्शित करता है, विंडोज + में कॉपी और पेस्ट करने के लिए आसान बनाने के लिए एक समारोह आर "निष्पादित" संवाद

  2. वैकल्पिक रूप से, अपने ऑपरेटिंग सिस्टम में एक कस्टम प्रोटोकॉल (जैसे eclipse://) दर्ज की, और कहा कि प्रोटोकॉल ग्रहण करने के लिए बराबरी कर ली। यह वास्तव में एक बहुत अच्छा तरीका है, मैंने अभी तक यह कोशिश नहीं की है लेकिन निश्चित रूप से अगले परियोजना में मुझे इसकी आवश्यकता होगी। Mozillazine: Register protocol (reg फ़ाइल उदाहरण देखें)

+0

सिम्फनी स्टैकट्रैस के लिए कस्टम प्रोटोकॉल की तरह कुछ करता है। मुझे नहीं पता कि यह वास्तव में क्या करता है (मैं आईडीई का उपयोग नहीं करता हूं जिसके लिए उन्होंने सुविधा बनाई है) लेकिन @ विक्टर सिम्फनी की जांच करें। –

+0

दिलचस्प। मैंने डेटा का उपयोग करने के बारे में सोचा: स्थानीय फ़ाइल के पथ वाले एक कस्टम एक्सटेंशन के साथ फ़ाइल डाउनलोड करने के लिए यूआरएल, और उस बैच फ़ाइल को कस्टम एक्सटेंशन बाध्य करना जो ग्रहण में फ़ाइल खोल देगा। लेकिन मुझे वर्तमान में खोले गए उदाहरण में डिस्क पर एक PHP फ़ाइल खोलने के लिए ग्रहण प्रतीत नहीं होता है। विंडोज + आर ग्रहण में फ़ाइल को खोलने के लिए प्रतीत नहीं होता है, या तो। –

+0

@ विंडोज + आर मुद्दे पर विक्टर आपको ग्रहण को .php एक्सटेंशन से जोड़कर सॉर्ट करने में सक्षम होना चाहिए (मुझे लगता है कि यह Shift + राइट एक्सप्लोरर में एक PHP फ़ाइल पर राइट क्लिक करें -> "इसके साथ खोलें ...." -> चुनें "एप्लिकेशन का चयन करें" -> ... (शब्द अनुमानित है, मेरे पास केवल एक जर्मन विंडोज 7 है))। –

0

आप फ़ाइल के साथ स्थानीय पथ मिलता है।

शायद आप ऐसा कुछ करने का प्रयास करें?

<?php 
'127.0.0.1' == $_SERVER["REMOTE_ADDR"] and print __FILE__; 
?> 
+0

कृपया प्रश्न पढ़ें। –

+0

@ विक्टर: अगर अपूर्ण है तो टॉस्चो वास्तव में कुछ अच्छी सलाह दे रहा है। यह है कि प्रत्येक स्रोत स्क्रिप्ट के भीतर प्रत्येक PHP स्क्रिप्ट के स्थान को हार्डकोड करने के बजाए, \ n \ _ FILE__ जादू स्थिरांक का उपयोग करके उस स्थान को गतिशील रूप से निकाला जा सकता है। फिर आप एक ग्रहण बना सकते हैं: // extracted_file_name_here यूआरआई (या फ़ाइल खोलने के लिए कुछ अन्य तंत्र का उपयोग करें - यह बिंदु के बगल में है)। यह स्थान को हार्डकोडिंग की तुलना में स्पष्ट रूप से कम काम, साथ ही अधिक मजबूत होगा। – user359996

+0

@ user359996: शामिल फ़ाइल का नाम ढूंढना एक हल समस्या है। इतना ही नहीं, लेकिन यह पहले से ही हल हो चुका है जो __FILE__ का उपयोग करने से कहीं अधिक मजबूत है: मैं निष्पादित किए जाने वाले क्रिया को कम करने के लिए प्रेषक कोड का उपयोग करता हूं, और यह निर्धारित करने के लिए कक्षा ऑटोलोडिंग कोड का उपयोग करता है। मेरी समस्या यह है कि मैं ग्रहण में फ़ाइल को खोलने के लिए फ़ाइल नहीं मिल सकती है (हालांकि मैं इसे नोटपैड में खोलने में कामयाब रहा हूं!)। फ़ाइल खोलने के लिए तंत्र का निर्माण प्रश्न का पूरा बिंदु है। आप कैसे कह सकते हैं कि यह बिंदु के बगल में है ?? –

0

Xdebug विकल्प के साथ ग्रहण को एकीकृत है? मैंने टेक्स्टमैट के साथ ऐसा किया है ताकि उत्पन्न त्रुटि संदेश सही फ़ाइल में सही रेखा पर ले जाने के लिए क्लिक करने योग्य हो। (विवरण के लिए this question देखें)।

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