PHP初学者:使用exec命令标准练习吗?

时间:2010-10-22 19:47:29

标签: php ls

我刚刚开始使用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 个答案:

答案 0 :(得分:3)

此类操作有目录函数:http://www.php.net/manual/en/ref.dir.php

答案 1 :(得分:1)

“exec”是便携式beacuse是一个API! :-)什么是不可移植的是表示通过“exec”调用的命令行的字符串。

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

Ex:dir class in PHP

答案 2 :(得分:1)

  

使用exec命令标准练习吗?

没有。使用exec与主机操作系统进行交互是一种非常不便携的做法。对于几乎任何情况,都有一个独立于操作系统的解决方案;在这种特殊情况下,您可以使用globreaddirscandir找到当前目录中的所有文件。

在接受任何形式的用户输入的程序中使用eval通常也会带来严重的安全风险。你的程序目前没有遭受这样的风险,但它也非常微不足道。

答案 3 :(得分:0)

是的,有更好的方法来做你想要的事情。初学者有globreaddir

就“标准练习”而言,你会在PHP领域看到很多这样的东西。如果开发人员不太了解PHP庞大的代码库,但确实知道shell,他们最终会使用exec和反引号(``)来完成他们的工作。这是一个标准的做法,一些百分比的PHP开发人员讨厌,另一个百分比不能没有。习惯了。