2011-11-30 11 views
10

Come posso scrivere PHP opcode, salvarlo in un file e farlo eseguire da Zend Engine? Qualsiasi metodo o hack è il benvenuto, a condizione che faccia il trucco.Scrittura di opcode PHP e averlo eseguito. Come fare?

+3

Che cosa è codice operativo? – abcde123483

+2

prova a google :) – Raffael

+0

a "nessuna risposta ben intenzionata che non stia precisamente affrontando [la] domanda". Sono risposte miserabili o arrabbiate che non rispondono alla domanda accettabile? – halfer

risposta

4

Esistono un paio di metodi di spazio utente (dai plug-in) che possono gestire Opcodes.

Né produce testo in chiaro però perché i codici operativi non sono progettati per essere un linguaggio user-scrivibili (a differenza di Parrot).

+0

ciò significa che potrei sovrascrivere un file memorizzato nella cache con apc_bin_load, suppongo ... quindi la prossima domanda sarebbe come le affermazioni opcode di bell'aspetto si riferiscono alla rappresentazione binaria effettivamente utilizzata. ne sai qualcosa a riguardo? riferimenti o così? – Raffael

+0

http://stackoverflow.com/questions/1795425/how-to-get-opcodes-of-php ha alcune informazioni, per lo più riferite a "Vulcan Logic Dumper" - http://pecl.php.net/package/vld –

0

C'è un'estensione chiamata ulopcodes che consente di emettere i propri codici opzionali tramite una funzione che espone al codice PHP.

Ad esempio:

ulopcodes_emit(ZEND_ECHO, "Hello world!"); 

creerà quella linea nella oparray corrente che sarà eseguito dal VM.

Questa estensione è puramente educativa e non è destinata a essere utilizzata nel codice di produzione.

(Disclaimer: io sono il creatore di ulopcodes)

+0

c'è qualche estensione per esportare i codici? – kodmanyagha

+0

Sì, è possibile utilizzare [vld] (https://github.com/derickr/vld) ad esempio per generare gli opcode generati. – pmmaga

Problemi correlati