不区分大小写 Shell 命令不适用于 PHP Exec
Case Insensitive Shell Command Not Working With PHP Exec
我运行宁PHP7.0.22,下LAMP,两个ubuntu16.04.
当我打开 shell 并输入
ls -1 /var/www/dropbox/*.[Cc][Ee][Ll] >
它创建一个文件 /var/www/dropbox/temp.lst,列出 /var/www/dropbox 中以 .cel 或 .CEL 结尾的所有文件。
但是,当我 运行 PHP 代码包含
$str="ls -1 /var/www/dropbox/*.[Cc][Ee][Ll] >/var/www/dropbox/temp.lst";
exec($str);
我没有创建 /var/www/dropbox/temp.lst 并且 /var/log/apache2/error.log 包含错误消息
ls: cannot access '/var/www/dropbox/*.[Cc][Ee][Ll]': No such file or directory
编辑 1:
$str="ls -1 /var/www/dropbox/*.[Cc][Ee][Ll]";
$results = explode(PHP_EOL, shell_exec($str));
print_r($results);
echo "<br>";
returns
Array ( [0] => )
您需要 shell_exec()
,而不是 exec()
。您还应该使用 egrep
。即,ls | egrep '*.CEL|*.cel'
尝试使用 shell_exec($str)
。这将解决这个问题。
exec()
执行外部程序。
shell_exec()
通过 shell 执行命令,return 将完整的输出作为字符串
它将return结果作为字符串。
<?php
$command = "ls | egrep '*.CEL|*.cel'";
$results = explode(PHP_EOL, shell_exec($command));
print_r($results);
?>
结果应该如下
Array
(
[0] => luminol.cel
[1] => luminol.CEL
[2] =>
)
来源:
http://php.net/manual/en/function.shell-exec.php
http://php.net/manual/en/function.exec.php
我运行宁PHP7.0.22,下LAMP,两个ubuntu16.04.
当我打开 shell 并输入
ls -1 /var/www/dropbox/*.[Cc][Ee][Ll] >
它创建一个文件 /var/www/dropbox/temp.lst,列出 /var/www/dropbox 中以 .cel 或 .CEL 结尾的所有文件。
但是,当我 运行 PHP 代码包含
$str="ls -1 /var/www/dropbox/*.[Cc][Ee][Ll] >/var/www/dropbox/temp.lst";
exec($str);
我没有创建 /var/www/dropbox/temp.lst 并且 /var/log/apache2/error.log 包含错误消息
ls: cannot access '/var/www/dropbox/*.[Cc][Ee][Ll]': No such file or directory
编辑 1:
$str="ls -1 /var/www/dropbox/*.[Cc][Ee][Ll]";
$results = explode(PHP_EOL, shell_exec($str));
print_r($results);
echo "<br>";
returns
Array ( [0] => )
您需要 shell_exec()
,而不是 exec()
。您还应该使用 egrep
。即,ls | egrep '*.CEL|*.cel'
尝试使用 shell_exec($str)
。这将解决这个问题。
exec()
执行外部程序。
shell_exec()
通过 shell 执行命令,return 将完整的输出作为字符串
它将return结果作为字符串。
<?php
$command = "ls | egrep '*.CEL|*.cel'";
$results = explode(PHP_EOL, shell_exec($command));
print_r($results);
?>
结果应该如下
Array
(
[0] => luminol.cel
[1] => luminol.CEL
[2] =>
)
来源:
http://php.net/manual/en/function.shell-exec.php
http://php.net/manual/en/function.exec.php