我刚刚开始 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>
有帮助吗?

解决方案

有用于这种操作的目录功能: HTTP://www.php。净/手动/ EN / ref.dir.php

其他提示

“EXEC” 是便携式怎么一回事,因为是一个API! :-)什么是不可移植是表示在命令行调用通过“EXEC”的字符串。

在这种情况下,你可以使用PHP API来读取目录。也就是说每次使用到您的服务器操作系统上的可移植性。

例:在PHP DIR类

使用 exec 命令是标准做法吗?

不。使用 exec 与主机操作系统交互是一种非常不可移植的做法。几乎对于任何情况,都有一个独立于操作系统的解决方案;在这种特殊情况下,您可以使用以下命令找到当前目录中的所有文件 glob, readdir 或者 scandir.

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

是的,有更好的方法来完成您所追求的事情。有 全局 或者 读目录 对于初学者。

就“标准实践而言”而言,您会在 PHP 领域看到很多这样的情况。如果开发人员不太了解 PHP 庞大的代码库,但了解 shell,他们最终会到处使用 exec 和反引号 (``) 来完成工作。这是一些 PHP 开发人员讨厌的标准做法,而另一些开发人员则离不开它。看到它就习惯了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top