2011-11-30 7 views
10

PHP opcodeと書くにはどうすればいいですか?ファイルに保存してZend Engineで実行させてください。トリックをしている限り、あらゆる方法やハックを歓迎します。PHPオペコードを記述して実行しました。実行する方法?

+3

オペコードとは何ですか? – abcde123483

+2

Googleに試してみてください:) – Raffael

+0

「正確に質問に対処していない善意の回答はありません」で悲惨な、怒っている回答は、受け入れ可能な問題に対処していませんか? – halfer

答えて

4

オペコードを扱うことができる、いくつかのユーザースペースメソッド(プラグインから)があります。

  • http://uk.php.net/bcompiler_read/http://uk.php.net/bcompiler_write_file
  • どちらオペコードが(オウムとは違って)ユーザー書き込み可能な言語であるように設計されていないがために、プレーンテキストを生成します。

    +0

    これは、キャッシュされたファイルをapc_bin_loadで上書きすることができるということを意味します。次の質問は、実際に使用されているバイナリ表現とどのように関係しているのでしょうか。あなたはそれについて何か知っていますか?参照またはそう? – Raffael

    +0

    http://stackoverflow.com/questions/1795425/how-to-get-opcodes-of-phpには、「Vulcan Logic Dumper」を参照する情報があります。http://pecl.php.net/package/vld –

    0

    ulopcodesと呼ばれる拡張機能があり、PHPコードに公開する機能を使用して独自のオペコードを発行することができます。例えば

    ulopcodes_emit(ZEND_ECHO, "Hello world!"); 
    

    は、VMで実行される現在のoparrayでその行を作成します。

    この拡張は純粋に教育的なものであり、プロダクションコードでは使用しないことを意図しています。

    (免責事項:私はulopcodesの作成者をしています)

    +0

    オペコードをエクスポートする拡張機能はありますか? – kodmanyagha

    +0

    はい、[vld](https://github.com/derickr/vld)を使用して、生成されたオペコードを出力することができます。 – pmmaga