当前位置: 首页 > 后端技术 > PHP

php执行系统外部命令

时间:2023-03-29 21:07:08 PHP

php提供了4种执行系统外部命令的方法:-exec()、passthru()、system()、shell_exec()。在开始介绍之前,先查看php配置文件php.ini中是否禁止了该功能。找到disable_functions,配置如下:disable_functions=如果“disable_functions=”后面有以上四个函数,则将其删除。默认的php.ini配置文件并没有禁止你调用执行外部命令的函数。方法一:exec()functionexec(string$command,array[optional]$output,int[optional]$return_value)php代码:header("content-type:text/html;charset=gb2312");//echoexec("ipconfig",$file);//回显"
";//打印_r($文件);$a=exec("ipconfig",$out,$status);打印_r($a);回声“
--------------------------------------------------
";回声“<前>”;//print_r($输出);变量转储($输出);回声“”;回声“
-------------------------------------------------
”;print_r($status);执行结果:Array([0]=>index.php[1]=>test.php)知识点:exec执行系统外部命令时,不会输出结果,而是返回结果的最后一行,如果要得到结果,可以使用第二个参数让它输出到指定的数组中,这个数组中的一条记录代表输出一行,即如果输出结果有20行,那么这个数组有20条记录,所以如果需要重复输出调用不同系统外部命令的结果,最好在输出每条系统外部命令的结果时清空这个数组,以防混淆。第三个参数用于获取命令执行的状态码,通常执行成功返回0。方法二:passthru()functionpassthru(string$command,int[optional]$return_value)代码:执行结果:index.phptest.php知识点:passthru和passthru的区别system,passthru直接将结果输出到浏览器,不需要使用echo或者return查看结果,不返回任何值,可以输出二进制,比如图片数据。方法三:system()函数system(string$command,int[optional]$return_value)代码:执行结果:binbootcgroupdevetchomeliblost+foundmediamntoptprocrootsbinselinuxsrvsystmpusrvar知识点:system和exec的区别是系统在执行系统外部命令时,直接将结果输出到浏览器,而不使用echo或return查看结果。如果命令执行成功,则返回true,否则返回false。第二个参数和exec的第三个参数含义相同。方法四:反引号`和shell_exec()shell_exec()函数其实只是反引号(`)运算符的一种变体代码:执行结果:/var/www/html