欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php调用外部shell的方法总结

程序员文章站 2022-03-26 12:46:09
...
  1. system("/usr/local/bin/webalizer/webalizer");
  2. ?>
复制代码

exec() 原型:string exec (string command [, string array [, int return_var]])

exec() 函数与system()类似,也执行给定的命令,但不输出结果,而是返回结果的最后一行。虽然它只返回命令结果的最后一行,但用第二个参数array可以 得到完整的结果,方法是把结果逐行追加到array的结尾处。所以如果array不是空的,在调用之前最好用unset()最它清掉。只有指定了第二个参 数时,才可以用第三个参数,用来取得命令执行的状态码。

例子:

  1. exec("/bin/ls -l");
  2. exec("/bin/ls -l", $res);
  3. #$res是一个数据,每个元素代表结果的一行
  4. exec("/bin/ls -l", $res, $rc);
  5. #$rc的值是命令/bin/ls -l的状态码。成功的情况下通常是0
  6. ?>
复制代码

passthru() 原型:void passthru (string command [, int return_var])

passthru() 只调用命令,不返回任何结果,但把命令的运行结果原样地直接输出到标准输出设备上。所以passthru()函数经常用来调用象pbmplus(Unix 下的一个处理图片的工具,输出二进制的原始图片的流)这样的程序。同样它也可以得到命令执行的状态码。

例子:

  1. header("Content-type: image/gif");
  2. passthru("./ppmtogif hunte.ppm");
  3. ?>
复制代码