第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

按日期在PHP中對文件進行排序

按日期在PHP中對文件進行排序

PHP
開心每一天1111 2019-07-02 11:08:26
按日期在PHP中對文件進行排序我現(xiàn)在有一個index.php文件,它允許我輸出同一個目錄中的文件列表,輸出顯示名稱,然后我使用filemtime()函數(shù)來顯示文件修改時的日期。我現(xiàn)在的問題是,如何對輸出進行排序以顯示最新修改的文件?如果我是用MySQL交互來做這件事的話,那就沒有問題了。請給我一個例子,如何排序和輸出從最近修改的文件列表。這就是我現(xiàn)在所擁有的if ($handle = opendir('.')) {while (false !== ($file = readdir($handle))) {        if ($file != "." && $file != "..") {         $lastModified = date('F d Y, H:i:s',filemtime($file));           if(strlen($file)-strpos($file,".swf")== 4){             echo "<tr><td><input type=\"checkbox\" name=\"box[]\"></td><td><a href=\"$file\" target=\"_blank\">$file</a>             </td><td>$lastModified</td></tr>";            }        }    }    closedir($handle);}
查看完整描述

3 回答

?
守著星空守著你

TA貢獻1799條經(jīng)驗 獲得超8個贊

您需要將文件放入數(shù)組中,以便對最后修改的文件進行排序和查找。

$files = array();if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
           $files[filemtime($file)] = $file;
        }
    }
    closedir($handle);

    // sort
    ksort($files);
    // find the last modification
    $reallyLastModified = end($files);

    foreach($files as $file) {
        $lastModified = date('F d Y, H:i:s',filemtime($file));
        if(strlen($file)-strpos($file,".swf")== 4){
           if ($file == $reallyLastModified) {
             // do stuff for the real last modified file
           }
           echo "<tr><td><input type=\"checkbox\" name=\"box[]\"></td><td><a href=\"$file\" target=\"_blank\">$file</a>
           </td><td>$lastModified</td></tr>";
        }
    }}

沒有測試,但這是怎么做的。


查看完整回答
反對 回復 2019-07-02
?
蕭十郎

TA貢獻1815條經(jīng)驗 獲得超13個贊

這將使.swf擴展名為.swf的路徑/to/文件中的所有文件進入數(shù)組,然后根據(jù)文件的mtime對該數(shù)組進行排序。

$files = glob('path/to/files/*.swf');usort($files, function($a, $b) {
    return filemtime($a) < filemtime($b);});

上面使用的是Lambda函數(shù)并需要PHP 5.3。在5.3之前,你會

usort($files, create_function('$a,$b', 'return filemtime($a)<filemtime($b);'));

如果不想使用匿名函數(shù),則可以將回調(diào)定義為常規(guī)函數(shù),并將函數(shù)名稱傳遞給usort相反。

在得到的數(shù)組中,您可以像下面這樣迭代這些文件:

foreach($files as $file){
    printf('<tr><td><input type="checkbox" name="box[]"></td>
            <td><a href="%1$s" target="_blank">%1$s</a></td>
            <td>%2$s</td></tr>', 
            $file, // or basename($file) for just the filename w\out path
            date('F d Y, H:i:s', filemtime($file)));}

請注意,因為您已經(jīng)調(diào)用了filemtime在對文件進行排序時,在foreach循環(huán)中再次調(diào)用它時,由于STAT緩存.


查看完整回答
反對 回復 2019-07-02
?
互換的青春

TA貢獻1797條經(jīng)驗 獲得超6個贊

一個使用回收董事類,這是在文件系統(tǒng)上遞歸迭代的一種方便方法。

$output = array();foreach( new RecursiveIteratorIterator( 
    new RecursiveDirectoryIterator( 'path', FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS ) ) as $value ) {      
        if ( $value->isFile() ) {
            $output[] = array( $value->getMTime(), $value->getRealPath() );
        }}usort ( $output, function( $a, $b ) {
    return $a[0] > $b[0];});


查看完整回答
反對 回復 2019-07-02
  • 3 回答
  • 0 關(guān)注
  • 664 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號