使用PHP执行C脚本

时间:2013-07-12 07:06:05

标签: php c

我需要在PHP中运行一个c程序来建立套接字连接并从服务器返回结果。

我编写了一个C程序来建立套接字连接,服务器接收请求。

如何将C程序转换为.dll文件以用作PHP扩展?

3 个答案:

答案 0 :(得分:0)

使用套接字无法直接运行任何c应用程序。您需要调用该可执行文件才能运行。

我的想法是你可以在远程运行另一个客户端应用程序并将一些数据发送到套接字,而在远程客户端将收到基于它可以运行应用程序的消息。

答案 1 :(得分:0)

方法1:
您可以接收从客户端发送的文件并将其保存到磁盘 然后,您可以使用 system 来编译收到的文件 最后一步,运行它,再次使用系统

但我不建议你这样做,因为它可能很危险,你永远不知道代码的作用。它可能会删除磁盘中的所有文件。而且,可能无法安装代码所依赖的库。

<强>方法2:
使用可加载的库:
1.发送到服务器的所有代码都实现了通用接口
2.将代码预编译为可加载库
2.服务器将代码保存到磁盘
3.服务器加载库并调用通用接口
有关可加载库的更多信息,请查看it

答案 2 :(得分:0)

我们无法直接使用PHP运行C程序,因为要运行C脚本,没有任何编译器可以使用任何LAMPP,XAMPP,WAMP。如果我们需要运行任何C脚本,请使用带有ZEND引擎标准的C代码创建PHP扩展(检查语法以从PHP接收C中的参数)。

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ls|b", &intNumber, &strVal,  &return_long) == FAILURE) {
         RETURN_NULL();
    }

WINDOWS:

请参阅此链接以使用C脚本创建PHP扩展: http://www.dreamincode.net/forums/topic/244215-introduction-to-creating-a-php-extension-for-windows/ 将扩展文件移动到/ ext /文件夹,并在php.ini文件中添加扩展名

LINUX:

http://linux.ferhatbingol.com/2013/06/06/how-to-create-php-extensions/ 在linux中,默认情况下.so文件将移至 / usr / lib / php5 / XXXXXXXX / extension.so ,在PHP.ini文件中指定此扩展路径

然后重启apache服务器,最后我们的PHP扩展工作正常。