用PHP读取文件名

时间:2011-09-03 21:08:09

标签: php filesystems

我正在编写一个新闻脚本,但我无法找到要删除文件的方法。

如何更改此脚本,以便<input type="checkbox" />在同一行中有value个文件?

<?php
    // This function reads all available news
    function getNewsList(){

       $fileList = array();

        // Open the actual directory
        if ($handle = opendir("news")) {
            // Read all file from the actual directory
            while ($file = readdir($handle))  {
                if (!is_dir($file)) {
                    $fileList[] = $file;
            }
            }
        }   

        rsort($fileList);

        return $fileList;
    }

    // new

    $list = getNewsList();
    print("<table>\n");
    print("<tr><td>&nbsp;</td><td>Article Title:</td><td>Post Date:</td></tr>\n");
    foreach ($list as $value) {
        $newsData = file("news/".$value);
        $newsTitle  = $newsData[0];
        $submitDate = $newsData[1]; 
        unset ($newsData['0']);
        unset ($newsData['1']);

        $newsContent = "";
        foreach ($newsData as $value) {
            $newsContent .= $value;
        }

            print("<tr>");
            print("<td><input type=\"checkbox\" name=\"check_files[]\" value=\"$file\" /></td>");
            print("<td>$newsTitle</td>");
            print("<td>");
            print("$submitDate");
            print("</td>");
            print("</tr>\n");

    }  
    print("</table>\n");

我有一个类似的脚本来管理文件,它的文件名就像$dirArray[$index],但是我无法弄清楚如何调整这个脚本以同样的方式工作,因为我太新了到PHP。

感谢您的帮助!

编辑:这是文件名需要的行:(而不是$ file,由于某种原因不起作用):

print("<td><input type=\"checkbox\" name=\"check_files[]\" value=\"$file\" /></td>");

3 个答案:

答案 0 :(得分:1)

$file变量未在任何地方定义,您可以尝试:

替换

$newsData = file("news/".$value);

$file="news/".$value;
$newsData = file($file);

答案 1 :(得分:0)

在您的脚本中,看起来当前文件名存储在$value中,因为$list = getNewsList();是一个文件名数组,而您正在对其进行操作:foreach ($list as $value) {

答案 2 :(得分:0)

尝试用以下代码替换第二个foreach循环:

foreach ($newsData as $content) {
    $newsContent .= $content;
}

然后使用此行显示文件:

print("<td><input type=\"checkbox\" name=\"check_files[]\" value=\"$value\" /></td>");