Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.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
如何运行&x27;gcc&x27;使用apache web服务器在浏览器上从php发出的命令_Php_Gcc - Fatal编程技术网

如何运行&x27;gcc&x27;使用apache web服务器在浏览器上从php发出的命令

如何运行&x27;gcc&x27;使用apache web服务器在浏览器上从php发出的命令,php,gcc,Php,Gcc,Rookie@PHP,目标是使用PHP,google'd从浏览器编译C程序,并发现解决方案是运行shell_exec命令。因此,程序在shell中工作,但在web浏览器中无法工作 代码是 <?php $output = shell_exec('gcc /home/sam/php_practice/prog.c'); echo "$output"; ?> PS:如果我们将“gcc”替换为“ls”,它将在web浏览器中作为 那么,我不能理解的区别是什么,我是什么 失踪 您需要将错误

Rookie@PHP,目标是使用PHP,google'd从浏览器编译C程序,并发现解决方案是运行shell_exec命令。因此,程序在shell中工作,但在web浏览器中无法工作

代码是

<?php
$output = shell_exec('gcc /home/sam/php_practice/prog.c');
echo "$output";
?>

PS:如果我们将“gcc”替换为“ls”,它将在web浏览器中作为 那么,我不能理解的区别是什么,我是什么 失踪


您需要将错误消息从stderr重定向到stdout,以便
shell\u exec()
收集输出。将行更改为:

$output = shell_exec("gcc /home/sam/php_practice/prog.c 2>&1");

如果你需要更多的信息,请点击链接

如果C文件没有任何错误,则编译成功,并且没有要显示的输出。相反,ls将显示目录的内容。如果C文件出错,它将显示在shell中,只需粘贴outputsam@sam:/var/www/html$php hello.php prog.c:在函数“main”中:prog.c:6:3:错误:应为“;”在“return”之前返回0^您需要将错误消息从stderr重定向到stdout,以便shell_exec收集输出。将行更改为:$output=shell_exec(“gcc/home/sam/php_practice/prog.c 2>&1”);巴迪,你的解决方案有效!!!!!谢谢