php执行外部命令

php执行外部命令

exec

语法:string exec ( string command [, array &output [, int &return_var]] )

不输出任何东西,有返回值为命令结果的最后一行。

command:执行命令

output:命令结果,一行为数组一个元素

return_val:0为成功 1为失败

<?php

$res = exec('ls', $output, $return);
echo '返回结果';
print_r($res);
echo PHP_EOL;
echo "命令结果输出:";
print_r($output);
echo PHP_EOL;
echo "执行状态";
print_r($return);
echo PHP_EOL;

//运行输出
返回结果demo.txt
命令结果输出:Array
(
    [0] => demo.php
    [1] => demo.txt
)

执行状态0

system

语法:string system( string command [, int &return_var])

直接输出结果,有返回值为命令结果的最后一行。

<?php

$res = system('ls', $return);
echo '返回结果';
print_r($res);
echo PHP_EOL;
echo "执行状态";
print_r($return);
echo PHP_EOL;


//运行输出
demo.php
demo.txt
返回结果demo.txt
执行状态0

shell_exec

语法:string system( string command)

有返回值为命令结果。

<?php

$res = shell_exec('ls');
echo '返回结果'.PHP_EOL;
print_r($res);

返回结果
demo.php
demo.txt

passthru

语法:string system( string command[,int return_var])

无返回结果,命令结果原样输出

用来调用类似pbmplus(unix下的一个处理图片的工具,输出二进制原始图片的流)

header("content-type:image/gif");
passthru('./ppmtogif hunte.ppm');

escapeshellarg

1.确保用户只传递一个参数给命令

2.用户不能指定更多的参数一个

3.用户不能执行不同的命令

escapeshellcmd

1.确保用户只执行一个命令

2.用户可以指定不限数量的参数

3.用户不能执行不同的命令

system(escapeshellcmd('groups '.'myuser;id'))//报错

popen

返回值是一个句柄

开启一个程序 不必等程序执行完成

pclose(popen($doShell, 'r'));
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值