C - 在 PHP 扩展中评估 PHP 代码


c - evaluate php code in php extension

我正在编写一个php扩展(我是新手),现在我遇到了一个奇怪的问题:

有没有办法在 php 扩展名内部评估字符串中的 php 代码?

例如,如果zname是"echo 'hello';",它将打印hello不回应"你好";

提前致谢

PHP_FUNCTION(hello_greetme)
{
    zval *zname;
    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &zname) == FAILURE) {
        RETURN_NULL();
    }
    convert_to_string(zname);
    php_printf("Hello ");
    PHPWRITE(Z_STRVAL_P(zname), Z_STRLEN_P(zname));
    php_printf("'n");

    RETURN_TRUE;
}
int eval_php_code(char *code) {
    int ret = 0;
    zend_try {
        ret = zend_eval_string(code, NULL, (char *)"" TSRMLS_CC);
    } zend_catch {
    } zend_end_try();
    return ret == FAILURE;
}

这应该适合您。