3

まず、PHP_FUNCTION() からファイルをインポートし、インポートされた php ファイルに C 関数からいくつかの変数をユーザー空間に渡す必要があります。

例:

include_a_file.c

PHP_FUNCTION(include_a_php_file)
{
  zval *var_to_userspace;
  char *str;
  str = "string send to userspace";
  ZVAL_STRING(var_to_userspace, str, 0);

  php_require_once("a_file.php"); // <-- how to?
}

a_file.php

<?php
  print "<pre>";
  vardump($var_to_userspace);
  print "</pre>";
?>
4

2 に答える 2

0

電話してみてくださいzend_compile_string()

zval nop;
ZVAL_STRINGL(&nop, "return ;", 8, 0);
zend_compile_string(&nop, "NOP" TSRMLS_CC);

zend_op_arrayこれにより、コードの Zend オペコードを保持する構造体へのポインターが返されます。したがって、これらのオペコードを一度ダンプするだけzend_op_arrayで、プログラムで構造体を自分で作成できます。

于 2012-06-10T16:16:47.773 に答える