質問

次のディレクトリ構造で作成された最新の 3 つのファイルのスニペットを含むニュース ページを作成したいと考えています。

したがって、次のファイルがあるとします。

/news.php /2010/the-latest-article.php /2009/some-long-article-name.php /2009/another-long-article-name.php /2009/too-old-article-name.php /2009/Another-Article-name.php

最初の 3 つのファイルのみを news.php 出力に含めたいと考えています。

役に立ちましたか?

解決

php.netから

foreach (glob("../downloads/*") as $path) { //configure path
    $docs[filectime($path)] = $path;
} ksort($docs); // sort by key (timestamp)

foreach ($docs as $timestamp => $path) {
    print date("d. M. Y: ", $timestamp);
    print '<a href="'. $path .'">'. basename($path) .'</a><br />'; 
}

あなたがwindoze上にある場合にも、filemtimeはより良い結果を与える可能性があります。

他のヒント

次のことを行う必要があります。

  • ディレクトリ構造をたどって既存のすべての PHP ファイルをリストします。
  • 作成時間にアクセスするには filectime
  • そのリストから最近のものを 3 つ選択します

検索するファイルが多数ある場合、これは遅くなる可能性があります。データベースの方が速いでしょう。

日付と時刻(YYYY-MM-DD HH:MM:SS)を使用して、ファイル名の前に付けることができる場合、あなたはできるだけでソートそれらアルファベット順に最後の3つを取ります。それ以外の場合は、ビクターは素晴らしい答えを持っています。

あなたが使用してファイルのディレクトリを開いて得ることができるのopendir http://php.net /manual/en/function.opendir.php とのreaddir ます。http: //www.php.net/manual/en/function.readdir.phpする

あなたはその後、PHPの関数を使用することができますfilemtime http://php.net/manual /en/function.filemtime.php のそれに渡されたファイル名の最後の変更の日付を返します。

あなたが何をするか

だから、ほとんどはfilemtimeのリターン(それはUNIXタイムスタンプを返します)によって、ディレクトリと順にそれらのすべてのファイルを見ています。あなただけのトップ3の結果を返す(好きそのアルゴリズム任意の並べ替えを使用して)それら注文したらます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top