मैं PHP opcode कैसे लिख सकता हूं, इसे एक फ़ाइल में सहेज सकता हूं और ज़ेंड इंजन इसे निष्पादित कर सकता हूं? किसी भी विधि या हैक का स्वागत है, जब तक यह चाल करता है।PHP ओपोड लिखना और इसे निष्पादित किया गया है। कैसे करें?
उत्तर
उपयोगकर्ता के अंतरिक्ष तरीकों की एक जोड़ी (प्लग इन से) कि opcodes के साथ सौदा कर सकते हैं नहीं है।
- http://uk.php.net/apc_bin_load (और http://uk.php.net/apc_bin_dump)
- http://uk.php.net/bcompiler_read/http://uk.php.net/bcompiler_write_file
न तो सादा पाठ तथापि क्योंकि opcodes एक उपयोगकर्ता के लिखने योग्य (तोता के विपरीत) भाषा होने के लिए बनाया नहीं कर रहे हैं पैदा करता है।
का मतलब है कि मैं apc_bin_load के साथ एक कैश की गई फ़ाइल को ओवरराइट कर सकता हूं, मुझे लगता है ... तो अगला प्रश्न यह होगा कि अच्छे दिखने वाले ऑपोड कथन वास्तव में उपयोग किए जाने वाले बाइनरी प्रस्तुति से कैसे संबंधित हैं। क्या आप इसके बारे में कुछ जानते हैं? संदर्भ या तो? – Raffael
http://stackoverflow.com/questions/1795425/how-to-get-opcodes-of-php में कुछ जानकारी है, जो ज्यादातर "वल्कन लॉजिक डम्पर" का जिक्र करती है - http://pecl.php.net/package/vld –
एक विस्तार ulopcodes कहा जाता है कि आप एक समारोह है कि यह PHP कोड को उजागर करता है के माध्यम से अपने खुद के opcodes फेंकना करने की अनुमति देता है।
उदाहरण के लिए:
ulopcodes_emit(ZEND_ECHO, "Hello world!");
वर्तमान oparray जो वीएम द्वारा निष्पादित किया जाएगा में है कि लाइन का निर्माण करेगा।
यह एक्सटेंशन पूरी तरह शैक्षिक है और उत्पादन कोड में उपयोग करने का इरादा नहीं है।
(अस्वीकरण: मैं ulopcodes के निर्माता हूँ)
क्या ऑपकोड निर्यात करने के लिए कोई एक्सटेंशन है? – kodmanyagha
हां, आप जेनरेटेड ऑपोड्स को आउटपुट करने के लिए उदाहरण के लिए [vld] (https://github.com/derickr/vld) का उपयोग कर सकते हैं। – pmmaga
opcode क्या है? – abcde123483
इसे Google पर आज़माने का प्रयास करें :) – Raffael