php';系统执行操作符

php';系统执行操作符,php,system,exec,Php,System,Exec,我只是对专业人士的想法感兴趣,因为不久前我遇到了执行操作符,认为它更整洁,更易于查看/使用,但使用执行操作符或内置php函数(如exec()或system())之间有什么区别吗 //execution operator <?php echo '<pre>'; echo `netstat -a`; echo '</pre>' ?> <?php echo '<pre>'; echo system('nets

我只是对专业人士的想法感兴趣,因为不久前我遇到了执行操作符,认为它更整洁,更易于查看/使用,但使用执行操作符或内置php函数(如exec()或system())之间有什么区别吗

//execution operator
<?php 
    echo '<pre>'; 
    echo `netstat -a`;
    echo '</pre>'
?>



<?php 
echo '<pre>'; 
echo  system('netstat -a');
echo '</pre>'
?>
//执行运算符

反勾选运算符与相同。不同的
系统
/
exec
/
shell\u exec
/
passthru
等命令之间存在一些差异。有关详细信息,请参阅。如果您要查找的是shell_exec的行为,则backtick运算符就可以了。

backtick运算符与相同。不同的
系统
/
exec
/
shell\u exec
/
passthru
等命令之间存在一些差异。有关详细信息,请参阅。如果您要查找的是shell_exec的行为,那么backtick操作符就可以了。

它完全取决于它的用途

如果它只是一个快速的外壳输出到另一个程序,并且您只需要将它打印到stdout,那么反勾号就可以了@deceze的帖子详细描述了如何实现这一点


但是,如果您需要与其他程序进行更强大的交互,那么没有什么比这更好了。它允许您在使用程序的
stdin
stdout
stderr

时充分利用它的功能。这完全取决于它的用途

如果它只是一个快速的外壳输出到另一个程序,并且您只需要将它打印到stdout,那么反勾号就可以了@deceze的帖子详细描述了如何实现这一点

但是,如果您需要与其他程序进行更强大的交互,那么没有什么比这更好了。在PHP中使用程序的
stdin
stdout
stderr
exec()
时,它可以让您充分利用的功能有点用词不当。实际的系统调用将终止正在运行的程序,并通过执行其他操作来替换它。但是PHP在幕后进行分叉,因此它的工作原理几乎与
system()
相同

行为上的差异在于
系统
不会缓冲结果。但是您很少会注意到这一点,因为您无论如何都会得到完整的结果。它主要只对CLI应用程序有意义

对于较低级别的C背景:PHP中的

exec()
有点用词不当。实际的系统调用将终止正在运行的程序,并通过执行其他操作来替换它。但是PHP在幕后进行分叉,因此它的工作原理几乎与
system()
相同

行为上的差异在于
系统
不会缓冲结果。但是您很少会注意到这一点,因为您无论如何都会得到完整的结果。它主要只对CLI应用程序有意义


对于较低级别的C背景:

是的,因为我在玩它时制作了一个简单的远程命令脚本,我想知道为什么人们会使用复杂的管道和流等,所以对于一个输出结果的简单命令,返回到浏览器的回勾就足够了。谢谢,因为我在玩远程命令脚本时做了一个简单的远程命令脚本,我想知道为什么人们会使用复杂的管道和流等,所以对于一个输出结果的简单命令来说,返回到浏览器的返回标记就足够了。谢谢