如何在PHP中使用exec

bf1o4zei  于 2022-12-28  发布在  PHP
关注(0)|答案(3)|浏览(120)

我不认为我想使用execshell_exec,但我需要在Linux中运行命令从PHP脚本。我在项目中使用Symfony框架。
我必须使用ls -la获取目录列表。

bcs8qyzn

bcs8qyzn1#

Symfony有一个Process组件来处理本机系统调用。
参见:https://symfony.com/doc/current/components/process.html
文档中的示例:

use Symfony\Component\Process\Process;
use Symfony\Component\Process\Exception\ProcessFailedException;

$process = new Process('ls -la');
$process->run();

// executes after the command finishes
if (!$process->isSuccessful()) {
    throw new ProcessFailedException($process);
}

echo $process->getOutput();
iq0todco

iq0todco2#

Symfony有一个Filesystem Component用于处理文件和目录。但是,它没有列出目录中的文件的功能。PHP内置的scandir函数可以为你做这件事。这比直接向操作系统发出命令要好。

hkmswyz6

hkmswyz63#

使用fromShell命令行来使用直接shell命令:

use Symfony\Component\Process\Process;
use Symfony\Component\Process\Exception\ProcessFailedException;

Process::fromShellCommandline('ls -la');
$process->run();

// executes after the command finishes
if (!$process->isSuccessful()) {
    throw new ProcessFailedException($process);
}

echo $process->getOutput();

相关问题