我需要在 PHP 中运行 ac 程序来建立套接字连接并从服务器检索结果。
我编写了一个 C 程序来建立套接字连接,服务器接收请求。
如何将 C 程序转换为 .dll 文件以用作 PHP 扩展?
使用套接字,您不能直接运行任何 c 应用程序。您需要调用该可执行文件才能运行。
我的想法是您可以在远程运行另一个客户端应用程序并将一些数据发送到套接字,并且在远程客户端将接收到可以运行应用程序的消息。
方法一:
接收客户端发来的文件,保存到磁盘。
然后,您可以使用系统编译收到的文件。
最后一步,你运行它,再次使用系统。
但我不建议您这样做,因为这可能很危险,您永远不知道代码的作用。它可能会删除磁盘中的所有文件。更重要的是,代码所依赖的库可能没有安装。
方法2:
使用可加载库:
1.所有发送到服务器的代码都是实现一个通用接口
2.预编译代码到可加载库
2.服务器将代码保存到磁盘
3.服务器加载库并调用通用接口
更多关于可加载库,请查看。
我们不能直接用 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();
}
视窗:
请参阅此链接以使用 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 Extension 就可以正常工作了。