如何编写php脚本来更新文件列表?

时间:2012-06-02 22:17:02

标签: c# php

我有一个程序来更新我的网站上的一些文件,我做的所有工作,但我有一个问题 update.php脚本

我的应用程序端更新代码是(在C#中):

    public string[] NeededFiles = { "teknomw3.dll" };
    public string HomePageUrl = "http://se7enclan.ir";
    public string NewsUrl = "http://se7enclan.ir/news";
    public string DownloadUrl = "http://se7enclan.ir/";
    public string UpdateList = "http://se7enclan.ir/update.php?action=list";
    public string UpdateBaseUrl = "http://se7enclan.ir/Update/";
如你所见

和我网站上的更新目录(所有文件都在这里。):

http://se7enclan.ir/Update/

所以我可以使用update.php中的脚本:“update.php?action = list”

此update.php脚本必须像此站点一样工作: http://mw3luncher.netai.net/update.php?action=list

谢谢。

1 个答案:

答案 0 :(得分:1)

我理解你的问题。这是一个解决方案:

<?PHP
  function getFileList($dir)
  {
    // array to hold return value
    $retval = array();

    // add trailing slash if missing
    if(substr($dir, -1) != "/") $dir .= "/";

    // open pointer to directory and read list of files
    $d = @dir($dir) or die("getFileList: Failed opening directory $dir for reading");
    while(false !== ($entry = $d->read())) {
      // skip hidden files
      if($entry[0] == ".") continue;
      if(is_dir("$dir$entry")) {
        $retval[] = array(
          "name" => "$dir$entry/",
          "type" => filetype("$dir$entry"),
          "size" => 0,
          "lastmod" => filemtime("$dir$entry")
        );
      } elseif(is_readable("$dir$entry")) {
       $retval[] = array(
          "name" => "$dir$entry",
          "type" => mime_content_type("$dir$entry"),
          "size" => filesize("$dir$entry"),
          "lastmod" => filemtime("$dir$entry")
        );
      }
   }
    $d->close();

    return $retval;
  }
?>

您可以按如下方式使用此功能:

<?PHP
  // examples for scanning the current directory
  $dirlist = getFileList(".");
  $dirlist = getFileList("./");
?>

要将结果输出到HTML页面,我们只需遍历返回的数组:

<?PHP
  // output file list as HTML table
  echo "<table border="1">\n";
  echo "<tr><th>Name</th><th>Type</th><th>Size</th><th>Last Mod.</th></tr>\n";
  foreach($dirlist as $file) {
    echo "<tr>\n";
    echo "<td>{$file['name']}</td>\n";
    echo "<td>{$file['type']}</td>\n";
    echo "<td>{$file['size']}</td>\n";
    echo "<td>",date('r', $file['lastmod']),"</td>\n";
    echo "</tr>\n";
  }
  echo "</table>\n\n";
?>

希望它有所帮助!