在PHP中使用passthrough函数,我可以运行exe,例如hello.exe并获得其结果,但无法通过PHP脚本在windows命令提示符下使用命令tcc hello.c编译例如hello.c。
所以问题是如何使用php脚本在windows命令提示符下运行commad-tcc-hello.c。php脚本&cmd.exe在附带的计算机上。
操作系统windows XP。
我想要编译的代码是hello。下面给出了c。
下面还给出了执行hello.exe的php脚本。
来自hello.c 的代码
#include<stdio.h>
void main(void)
{
printf("hello");
}
成功访问并显示hello.exe 的php代码
enter code here
<?php
echo "Remote compilation:";
$path = escapeshellcmd('C:''TC''BIN''HELLO.exe');
passthru( $path, $return_var);
?>
请引导关于
来自PHP文档:
passthru()函数与exec()函数的相似之处在于执行命令。此函数应用于代替exec()或system(),当Unix命令的输出是二进制数据时需要直接传递回浏览器。
但在这里,您并不期望从tcc
生成二进制数据并将其传递给浏览器。更合适的函数是shell_exec()
。例如:
<?php
echo "Remote compilation:";
$command = escapeshellcmd('YOUR TCC COMPILE COMMAND HERE');
shell_exec($command);
?>