【问题标题】:Writing PHP opcode and have it executed. How to do?编写 PHP 操作码并执行。怎么做?
【发布时间】:2012-01-09 16:58:23
【问题描述】:

如何编写PHP opcode,将其保存在文件中并让 Zend 引擎执行它?任何方法或黑客都是受欢迎的,只要它可以解决问题。

【问题讨论】:

  • 在“没有没有准确解决 [the] 问题的善意答案”。没有解决问题的悲惨或愤怒的答案是否可以接受?
  • @halfer ... 看看 Mo.sch 的答案 ... PHP 问题总是吸引这样的答案 ... 你 -1 是我吗?哦,伙计...
  • 不,我没有-1;我总是试图说明我为什么投反对票:)
  • 为什么要投反对票?这是一个完全有效(且有趣)的问题。
  • @N.B. - 是的,这是一个很好的问题。反对票可能是针对最初提出问题的方式,但现在已经得到了很好的改进。

标签: php opcode php-internals


【解决方案1】:

有几个用户空间方法(来自插件)可以处理操作码。

但是,由于操作码并非设计为用户可写的语言(与 Parrot 不同),因此它们都不会生成纯文本。

【讨论】:

【解决方案2】:

有一个名为 ulopcodes 的扩展程序允许您通过它向 PHP 代码公开的函数发出自己的操作码。

例如:

ulopcodes_emit(ZEND_ECHO, "Hello world!");

将在当前操作数组中创建该行,该行将由 VM 执行。

这个扩展纯粹是教育性的,不打算在生产代码中使用。

(免责声明:我是 ulopcodes 的创造者)

【讨论】:

  • 是的,例如可以使用vld 来输出生成的操作码。
猜你喜欢
  • 2015-09-04
  • 1970-01-01
  • 1970-01-01
  • 2015-09-11
  • 2015-09-19
  • 2013-09-04
  • 2011-08-31
  • 1970-01-01
  • 2012-04-23
相关资源
最近更新 更多