我一直在寻找将php脚本嵌入到c ++ windows应用程序中的方法。 我发现旧的Facebook项目,我不知道它是多么好或如何在Windows应用程序中使用它,如果有的话。 有没有办法在Windows应用程序中嵌入php?

===============>>#1 票数:5

PHP不是可执行文件,它是一个lib。 php-cli,php-cgi,mod_php等只是同一个库的接口。 您也可以将lib嵌入到您自己的应用程序中(桌面应用程序,网络工具等),但由于PHP的线程问题,它很痛苦。 这不仅仅是尝试线程化PHP时的问题,但是当应用程序的其他部分试图绕过它时,lib会崩溃或导致未定义的行为。 但是,它可以做到。 我已经做了一些嵌入PHP的项目,唯一一个无法克服线程相关问题的项目是尝试在JNI项目中配合PHP核心。

这是我将PHP核心嵌入到SMTP服务器的项目中的一个模糊。 它能够访问所有wordpress的代码库而无需任何修改(例如包含在wp-includes中)允许AUTH命令使用wordpress进行授权。 它还可以根据电子邮件主题直接发送电子邮件作为博客条目(如果用户通过SMTP以管理员身份登录),并将响应作为评论添加到帖子中。 这不是黑客或解决方法,SMTP服务使用与HTTP服务相同的代码库,配置和数据库。

case 11: // AUTH
    zval **z_auth_ret_code;
    zend_hash_index_find(Z_ARRVAL_P(ret_array), 2, (void**)&z_auth_ret_code);

    if(Z_TYPE_PP(z_auth_ret_code) == IS_LONG) {
        if(Z_LVAL_PP(z_auth_ret_code) == 334) { // is OK
            // GET AUTH TYPE
            zval **z_auth_type_code;
            zend_hash_index_find(Z_ARRVAL_P(ret_array), 3, (void**)&z_auth_type_code);

            if(Z_LVAL_PP(z_auth_type_code) == 3) { // AUTH LOGIN
                send_to_socket(client_socket, "334 AUTH LOGIN ready. Please send UID\r\n");

                char *uid_input = NULL;
                int uid_input_len = 0;
                if(read_from_socket(client_socket, &uid_input, &uid_input_len, (char*)"\r\n") > 0) {
                    ZVAL_STRING(user_name, uid_input, 1);
                    send_to_socket(client_socket, "334 Please send password for UID\r\n");
                }

                char *pwd_input = NULL;
                int pwd_input_len = 0;
                if(read_from_socket(client_socket, &pwd_input, &pwd_input_len, (char*)"\r\n") > 0) {
                    ZVAL_STRING(user_pass, pwd_input, 1);
                }

                // setup session
                zval *function, *retval;
                zval *params[2];

                MAKE_STD_ZVAL(function);
                MAKE_STD_ZVAL(retval);

                ZVAL_STRING(function, "open_session", 1);

                params[0] = user_name;

                call_user_function(EG(function_table), NULL, function, retval, 1, params);

                // do auth
                ZVAL_STRING(function, "smtp_auth", 1);

                params[0] = user_name;
                params[1] = user_pass;

                call_user_function(EG(function_table), NULL, function, retval, 2, params TSRMLS_CC);

                if(Z_TYPE_P(retval) == IS_LONG && Z_LVAL_P(retval) == 1) {
                    send_to_socket(client_socket, "235 AUTH LOGIN SUCCESSFUL\r\n");
                    is_authorized = 1;
                }else {
                    send_to_socket(client_socket, "535 AUTH LOGIN FAILED\r\n");
                }
            }
        }
    }
break;

===============>>#2 票数:-2

是C的相关问题,应该可以很容易地用于C ++。 如果您可以通过HTTP请求进行通信,也可以使用libcurl

===============>>#3 票数:-2

有针对Windows应用程序的模块编译器,或者构建在php上的整个桌面应用程序,并且对IPC有积极的思考,你可以做任何事情。

你想象这种嵌入php代码的方式是什么?

  ask by user63898 translate from so

未解决问题?本站智能推荐:

4回复

将PHP服务器嵌入到C ++应用程序中?

我需要使Web应用程序成为桌面应用程序 业务逻辑将用PHP编写(从Web应用程序中获取),底层的基础知识使用C ++ 为此,我需要一些解决方案来运行支持PHP的嵌入式服务器或考虑其他解决方案
1回复

如何将C ++应用程序集成到PHP网站中?

我有一个C ++应用程序,该程序处理一个句子并响应相应的用户。 我有一个使用php的网站,我想将数据发布到此应用程序并接收此响应。 理想情况下,C ++可以在网络服务器上运行,并且每次使用时都不必完全加载,但是我无法获得一个简单的“ hello world”(使用cgi或c ++)在网络服务
1回复

php中的银行应用程序

在编程领域,每天都有一场不为人知的战争。 这是人类与计算机科学家之间的战争。 这是那些想要简单,草率,灵活,人性化的代码编写方式的人与想要干净,清晰,清晰,正确的代码编写方式的人之间的战争。 这是PHP与C ++ / Java之间的战争。 -亚当·博斯沃思(Adam Boswort
2回复

PHP向C ++ Windows应用程序发送命令

我很好奇如何实现这一目标。 我什至不知道谷歌。 如果我有一个Web服务器,并且想用一个按钮创建一个php页面。 单击该按钮后,我在远程计算机上运行的c ++应用程序将执行一个功能。 最简单的方法是什么? 这个图书馆已经存在了吗? 如果不是,我应该用什么谷歌来开始呢? 谢
2回复

如何在php(Web应用程序)中传递值并运行c程序

我有大c程序。我想在php中执行该功能并获得价值 例如 C程序 我的网络表单有值a和b。 所以当我提交表单时,我想调用c函数add并获取输出。 我知道有一个函数可以在php中执行外部程序 但我不熟悉这个函数。请给我一些代码示例。 我应该将c程序文件(在记事本
5回复

PHP与C ++应用程序的通信

我一直在谷歌搜索一段时间,但我遇到的问题是我不确定我需要搜索的是什么。 (搜索PHP C ++通信似乎不是我需要的)我基本上是为游戏服务器开发一个c ++插件,我想创建一个可以向/从C ++插件传递数据的Web界面。 游戏已经使用RCON端口进行远程管理访问,但我偶然发现了他们使用的网络接口
1回复

将数据从c ++(opencv应用程序)传递到php

目前,我正在编写一个opencv C ++应用程序。 我希望此c ++程序始终处于等待状态,并且一旦用户单击php代码(Jquery)上的按钮,该程序将被激活。 我决定使用套接字来激活程序,并且在该程序完成运行后,我不知道如何将值传递回php。 任何人都建议任何解决方案。 我在互联网上搜
1回复

C ++与现有PHP应用程序之间的通信

我正在尝试构建一个C ++应用程序,该应用程序同步来自现有PHP应用程序(我可以访问并可以修改)的数据,并且还能够提交对其的更改。 不应直接访问数据(即,从C ++连接到数据库),因为已经存在某些基本代码,并且还出于安全考虑。 我要实现的目标需要单向沟通。 C ++ ---> P
1回复

将XML从PHP返回到C ++应用程序

我正在尝试使用php脚本查询mysql数据库,使用数据制作xml文件,然后将其返回以在c ++应用程序中进行访问。 然后,我将尝试编辑以c ++返回的数据,例如打印或截断它。 现在我在C ++中的主要功能是 我的PHP脚本包括... phpTest.pnp: 和mysq
1回复

PHP SOAP:与C ++应用程序的通信

我有一个使用gSOAP的C ++ SOAP客户端,并且正在尝试构建客户端可以与之交谈的非常简单的PHP服务器(Debian上为Apache2 / PHP5)。 不幸的是,我不理解如何在PHP中使用Web服务所使用的复杂类型。 我有一个.wsdl看起来像这样: 我当前的方法如下所示