2012-03-07 4 views
2

私は二重の質問があります。第1部:私はディレクトリからpdfファイルの素敵なリストを引っ張り、download.phpというファイルを "href"リンクに追加して、pdfファイルがWebページとして開こうとしないようにしました。代わりに保存する)。問題は、私は作成された日付でPDFファイル/リンクを注文する必要があります。私はバリエーションをたくさん試しましたが、何も動作していないようです!以下のスクリプト。私はまた、 "。と ".."ディレクトリのドット!どのようにそのすべてを達成するための任意のアイデア。個別には、これらの問題はなく、私の追加download.phpシナリオで、以前に解決されている:)PHP readir results - 作成した日付でソートしようとしましたが、 "。 ".."

<?php 

$dir="../uploads2"; // Directory where files are stored 


if ($dir_list = opendir($dir)) 
{ 
while(($filename = readdir($dir_list)) !== false) 


{ 
?> 
<p><a href="http://www.duncton.org/download.php?file=login/uploads2/<?php echo $filename; ?>"><?php echo $filename; 
?></a></p> 
<?php 


} 
closedir($dir_list); 
} 

?> 
+0

、ディレクトリの内容を反復処理するための良い代替はhttp://php.net/([SPLのDirectoryIteratorクラス]でありますDirectoryIterator) – Wiseguy

答えて

1

あなたが*それらを除外することができますが、...ハンドルは常にが最初に来ます。だからあなたはそれらを切り離すことができます。

foreach (array_slice(scandir($dir), 2) as $filename) { 

一つでも暗黙のうちにドットファイルをスキップしたglob("dir/*")を使用することができます。特に、あなたはシンプルなscandir()メソッドを使用している場合。それはctimeのでソートフルパスを返したようその後、同様容易になる:余談として

$files = glob("dir/*"); 

// make filename->ctime mapping 
$files = array_combine($files, array_map("filectime", $files)); 

// sorts filename list 
arsort($files); 
$files = array_keys($files); 
+0

マリオに感謝します。ドットの問題をソートしました。まだ作成された日付で商品を注文する必要があります。あなたのコードを使用してこれらのファイル/ pdfsをどのようにソートするかは絶対に分かりませんか?それを含めてどこでお勧めしますか?私は試しましたが、複数のエントリーで終わりました...私とPHP! – Martin

+0

2番目のコードブロックは、*あなたの代わりに*使用され、連動されませんでした。ソートには配列が必要です。手動でディレクトリを反復することは有用ではありません。 – mario

関連する問題