我们如何从php程序执行linux命令?

时间:2010-06-15 08:17:56

标签: php bash

我希望在网络浏览器中看到以下代码的输出:

代码:

<?php

      $var = system('fdisk -l');

      echo "$var";
?>

当我从Web浏览器打开它时,Web浏览器中没有输出。那我该怎么做呢?请帮忙!

由于 Puspa

3 个答案:

答案 0 :(得分:3)

你可以像以下一样使用passthru:

$somevar = passthru('echo "Testing1"');
// $somevar now == "Testing1"

echo passthru('echo "Testing2"');
// outputs "Testing2"

答案 1 :(得分:1)

使用exec('command',$ output);

的print_r($输出);

答案 2 :(得分:1)

首先,请确保允许您(=运行php的用户)调用外部程序(OS访问权限,php.ini中的safe_mode设置)。然后你在PHP中有很多选项可以通过命令行调用程序。我最常用的是:


system

如果命令失败或返回输出的 last 行,则此函数返回false。

$lastLine = system('...');

shell_execbacktick operators

此函数/运算符以字符串形式返回命令的整个输出。

$output = shell_exec('...'); // or:
$output = `...`;

exec

此函数返回命令输出的 last 行。但是你可以给它一个第二个参数,然后从命令输出中包含所有行。

$lastLine = exec('...'); // or capturing all lines from output:
$lastLine = exec('...', $allLines);

以下是这些用例的所有函数的概述:http://de.php.net/manual/en/ref.exec.php