php - 在 php 扩展中评估 php 代码

标签 php c php-extension

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

Is there any way to evaluate php code in string INSIDE a php extension ?

例如,如果 zname 是“echo '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;
}

这应该适合你。

关于php - 在 php 扩展中评估 php 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19466886/

相关文章:

php - 使用 Raspberry 命令行编辑器 'Nano' 与 LeafPad 编辑文本文件字符串。导致php无法正确读取字符串

php - SQL/PDO 查询优化

c - 是否存在字母 wchar_t 其大写版本和低版本相同?

php - 编译php扩展时出现编译错误

php - MySql日期范围查询不显示所有记录

php - jquery .eq 不适用于某些导航项目

c - 声明足够大的数组来容纳一个类型

c - 如何为不同的机器编译 Linux 可执行文件?

linux - Pecl Swoole php插件在linux centos上安装失败

linux - XDebug 已安装但未显示在 phpinfo() 中