2011-09-03 108 views
1

我正在寫新聞腳本,並且遇到了麻煩,使得文件被刪除。用PHP讀取文件名

如何更改此腳本以使<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。

感謝您的幫助!

編輯:這是文件名必須是行:(而不是$文件,它不會出於某種原因):

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

+0

我們看不到腳本頂部定義的函數。 –

回答

1

$file變量未定義任何地方,你可以試試這個:

更換

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

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

謝謝,那很好用:) – JacobTheDev

0

在你的腳本,它看起來像當前的文件名保存在$value,因爲$list = getNewsList();是文件名的數組,你這樣做就可以了的foreach:foreach ($list as $value) {

0

嘗試用替換第二foreach循環:

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

,然後使用此行來顯示文件:

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