代码之家  ›  专栏  ›  技术社区  ›  sixtyfootersdude

PHP初学者:是否使用exec命令标准实践?

  •  4
  • sixtyfootersdude  · 技术社区  · 14 年前

    我正在启动PHP。我只是好奇是否有更好的方法来做这件事。这将在与此脚本相同的文件夹中显示所有脚本。

    我不确定使用exec命令是否标准。它看起来不太轻便。

    <html>
    <head>
       <title>My PHP Practice Scripts</title>
    </head>
    
    <body>
       <center><h1>PHP Scripts</h1></center>
       <?php
          exec("ls -1 *.php", $output);
    
          foreach ($output as &$tmp){
             echo "<a href=\"$tmp\">$tmp</a><br>";
          }
       ?>
    </body>
    </html>
    
    4 回复  |  直到 14 年前
        1
  •  3
  •   Kel    14 年前

    这些操作有目录功能: http://www.php.net/manual/en/ref.dir.php

        2
  •  1
  •   robob    14 年前

    “exec”是可移植的,因为它是一个API!:-)不可移植的是表示通过“exec”调用的命令行的字符串。

    在这种情况下,您可以使用PHP API来读取目录。它在您的服务器上使用的每个操作系统上都是可移植的。

    前任: dir class in PHP

        3
  •  1
  •   user229044    14 年前

    是否使用执行命令标准做法?

    不,使用 exec 与主机操作系统交互是非常不可移植的实践。对于几乎任何情况,都有一个独立于操作系统的解决方案;在这种特殊情况下,您可以使用 glob , readdir scandir

    使用 eval 在接受任何形式的用户输入的程序中,通常也会导致严重的安全风险。您的程序目前不存在这样的风险,但它也是非常微不足道的。

        4
  •  0
  •   Alana Storm    14 年前

    是的,有更好的方法来做你想要的。有 glob readdir 首先。

    至于“标准实践”,您将在php land中看到很多这样的情况。如果开发人员不太了解PHP庞大的代码库,但确实了解shell,他们最终会在整个地方使用exec和backticks(“`”)来完成他们的工作。这是一个标准的做法,有一定比例的PHP开发人员讨厌,另外一个比例的人离不开它。习惯于看到它。

    推荐文章