PHP的内置函数的执行,系统可以调用系统命令(命令),当然,中继,escapeshellcmd等功能。

在很多时候,使用PHP的执行器、系统和其他函数调用系统命令可以帮助我们更快更好地完成工作。

今天,整理一下常用的呼叫系统功能,与大家分享经验。

Note: to use these two functions, the security mode in php.ini must be closed, otherwise PHP is not allowed to call system commands for security.

首先,看看PHP手册对这两个函数的解释。

执行外部程序

语法:字符串(字符串exec命令{,阵列输出{,int return_var } })

描述:

exec(命令)来执行给定的命令,但它不输出任何东西,它只是从命令到最后一行的结果,如果你需要从命令执行命令,并获得所有的信息,你可以使用passthru()这个函数。

如果一个给定的参数数组,指定的数组将每个输出行命令来填写,注意:如果数组有以前包含一些元素(EXEC)会把它放在额外的数组的后面,如果你不想要额外的元素的功能,你可以转移到这个阵列(行政)撤消(前称)。

如果参数数组和return_var给出状态命令返回的执行将被写入该变量。

注意:如果你允许用户输入的数据可以通过这个功能,你应该使用escapeshellcmd()来确保用户不能作弊(欺骗)系统执行任意命令(任意)。

注意:如果您使用此函数启动程序,并希望在后台(后台)执行的时候离开它,您必须确定此程序的输出是(重定向)到一个文件或一些输出数据流,否则PHP将被挂起直到程序执行结束(挂起)。

系统——执行外部程序并显示输出。

语法:柱系统(字符串命令{,int return_var })

描述:

系统()执行给定的命令命令的输出结果。如果参数return_var给出命令的执行状态代码将被写入该变量。

注意:如果你允许用户输入的数据可以通过这个功能,你应该使用escapeshellcmd()来确保用户不能作弊(欺骗)系统执行任意命令(任意)。

注意:如果您使用此函数启动程序,并希望在后台(后台)执行的时候离开它,您必须确定此程序的输出是(重定向)到一个文件或一些输出数据流,否则PHP将被挂起直到程序执行结束(挂起)。

如果PHP作为服务器模块运行,系统()将尝试在输出每行之后自动删除Web服务器的输出缓冲区。

成功返回到命令的最后一行,失败返回false。

如果你需要执行一个命令,命令把所有的数据,你可以使用passthru()函数。

这两个用于调用系统shell命令,

不同点:

执行器可以将执行的所有结果返回给$输出函数(数组),$状态的状态是未能成功0的状态1。

系统不需要提供$输出功能,他返回的结果直接,同样return_var美元是国家代码为0成功1失败。

执行的例子:

复制代码代码如下所示:
< PHP
$ =
print_r(美元);
print_r(美元);
print_r(美元地位);
>

系统的例子:
复制代码代码如下所示:
< PHP
$ =系统()
print_r(美元);
print_r(美元);
>

系统之间的差别,并通过过
系统()输出并返回shell最后一行的结果。
执行器()不输出结果,返回shell最后一行的结果,所有结果都可以保存到返回数组中。
Passthru()调用命令和命令直接输出到标准输出设备的结果。
相同的点:可以获得命令执行的状态代码。