7
回答
php与c代码之间的变量传递
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

@苗雨顺 你好,想跟你请教个问题:有没有什么方式使得c代码运行的结果保存到php变量里?

PHP
举报
winds18
发帖于5年前 7回/389阅
共有7个答案 最后回答: 5年前

system()函数只能返回最后一行的结果,想要返回完整结果还需要用exec()或者passthru()

将c代码编译成可执行文件,比如完整路径是/home/rain/hello 那么示例就是这样的:

<?php
exec('/home/rain/hello',$var);
print_r($var);

如果你问的是PHP中使用tcc运行C代码,将结果返回给PHP的话。这个没认真研究过,不知道有没有现成的方法,不过你可以通过中转的方式将结果告诉PHP,比如将执行结果保存在临时文件或者memcache中,PHP去访问就可以了。

引用来自“苗雨顺”的答案

system()函数只能返回最后一行的结果,想要返回完整结果还需要用exec()或者passthru()

将c代码编译成可执行文件,比如完整路径是/home/rain/hello 那么示例就是这样的:

<?php
exec('/home/rain/hello',$var);
print_r($var);

如果你问的是PHP中使用tcc运行C代码,将结果返回给PHP的话。这个没认真研究过,不知道有没有现成的方法,不过你可以通过中转的方式将结果告诉PHP,比如将执行结果保存在临时文件或者memcache中,PHP去访问就可以了。

好的 这个方法我去试下。

再请教大神一个问题,是关于在ubuntu 32位系统上安装php的tcc扩展,结果报错,提示为:

checking for tcc files in default path... not found
configure: error: Please reinstall the tcc distribution
ERROR: `/tmp/pear/temp/tcc/configure' failed
请问有什么问题可以解决?
--- 共有 1 条评论 ---
饶智闽we 5年前 回复

引用来自“winds18”的答案

引用来自“苗雨顺”的答案

system()函数只能返回最后一行的结果,想要返回完整结果还需要用exec()或者passthru()

将c代码编译成可执行文件,比如完整路径是/home/rain/hello 那么示例就是这样的:

<?php
exec('/home/rain/hello',$var);
print_r($var);

如果你问的是PHP中使用tcc运行C代码,将结果返回给PHP的话。这个没认真研究过,不知道有没有现成的方法,不过你可以通过中转的方式将结果告诉PHP,比如将执行结果保存在临时文件或者memcache中,PHP去访问就可以了。

好的 这个方法我去试下。

再请教大神一个问题,是关于在ubuntu 32位系统上安装php的tcc扩展,结果报错,提示为:

checking for tcc files in default path... not found
configure: error: Please reinstall the tcc distribution
ERROR: `/tmp/pear/temp/tcc/configure' failed
请问有什么问题可以解决?
别尝试了。。
顶部