Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP执行C脚本_Php_C - Fatal编程技术网

使用PHP执行C脚本

使用PHP执行C脚本,php,c,Php,C,我需要在PHP中运行一个c程序来建立套接字连接,并从服务器检索结果 我编写了一个C程序来建立套接字连接,服务器接收请求 如何将C程序转换为.dll文件以用作PHP扩展名?使用套接字,您无法直接运行任何C应用程序。您需要调用该可执行文件才能运行 我的想法是,您可以在远程上运行另一个客户端应用程序,并将一些数据发送到套接字,在远程,客户端将收到运行应用程序所依据的消息。方法1: 您可以接收客户端发送的文件并将其保存到磁盘。 然后,您可以使用系统编译收到的文件。 最后一步,运行它,再次使用系统 但我不

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

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


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

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


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

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

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

方法2:
使用可加载库:
1.发送到服务器的所有代码都实现了一个通用接口
2.将代码预编译到可加载库
2.服务器将代码保存到磁盘
3.服务器加载库并调用通用接口

关于可加载库的更多信息,请查看。

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

窗口:

请参阅此链接以使用C脚本创建PHP扩展: 将扩展名文件移动到/ext/文件夹,并在php.ini文件中添加扩展名

LINUX:

在linux中,默认情况下.so文件将移动到/usr/lib/php5/XXXXXXXX/extension.so ,在PHP.ini文件中指定此扩展路径


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

您尝试过使用netcat吗?谢谢您的回复
    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ls|b", &intNumber, &strVal,  &return_long) == FAILURE) {
         RETURN_NULL();
    }