php操作shell
php的内置函数exec,system都可以调用系统命令(shell命令),当然还有passthru,escapeshellcmd等函数。
- php页面
<?php phpinfo(); ?>
- system函数
system() 输出并返回最后一行shell结果。
<?php $shell="ls"; system($shell); ?>
验证:
- exec函数
exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。
验证:
查看数组内的具体数据
执行普通命令
system('ifconfig'); #本身直接输出,返回的和 exec 一致只返回最后一行数据
返回数组结果
exec("awk -F: '{print $1,$3,$4,$6,$7}' /etc/passwd",$arr); print_r($arr);
<?php $shell="awk -F: '{print $1,$3,$4,$6,$7}' /etc/passwd"; exec($shell,$arr,$s); echo '<pre>'; print_r($arr); echo '</pre>'; ?> 注:$s为查看状态,命令执行成功为0,执行不成功为127。 <pre></pre>是html标签,意思是按原样输出不做更改。