PHP页脚显示文件时间戳

eagi6jfj  于 2023-02-07  发布在  PHP
关注(0)|答案(2)|浏览(104)

对于我正在编码的每一个页面,我都有一个脚,我使用php,包括“footer.php”在他们所有的。下面是footer.php代码。我需要我的代码能够给予每个文件,而不是一个特定的文件正确的时间戳。所以最后每个页面应该有一个不同的时间戳,因为我在不同的时间对每个文件工作,因为我的网站是为一个类作业。当然,每个作业都是在不同的日子编码。如果这不使自让我知道。

<footer align="center">
    <hr width="900px" size="2" noshade="noshade" color="black" align="center">
    <div style="padding:0 30px">
        <p>Validated by:</p>
        <a href="https://validator.w3.org/check?uri=referer"><img src="https://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1" height="31" width="88"></a>
        <a href="https://jigsaw.w3.org/css-validator/check/referer"><img src="https://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>

        <p>Last modified:
            <?php
            $timestamp = filemtime(__FILE__);
            $date_time = new DateTime();
            $date_time->setTimezone(new DateTimeZone("America/New_York"));
            $date_time->setTimestamp($timestamp);

            echo $date_time->format("F j Y g:i a.");
            ?>
        </p>
    </div>
</footer>

我之前找人帮过忙,但没有成功。

46scxncf

46scxncf1#

首先,我们需要一个函数来读取关联中文件夹的所有文件
读取时间戳值

function getFileModificationTimes(string $directory): array {
    $files = scandir($directory);
    $modificationTimes = [];
    foreach ($files as $file) {
        if ($file === '.' || $file === '..') {
            continue;
        }
        $path = $directory . '/' . $file;
        if (!is_file($path)) {
            continue;
        }
        $modificationTimes[$file] = filemtime($path);
    }
    return $modificationTimes;
}

以及确定最大/最近值的第二函数

function getMaxModificationTime(array $modificationTimes) {
    $maxModificationTime = 0;
    $maxFile = '';
    foreach ($modificationTimes as $file => $modificationTime) {
        if ($modificationTime > $maxModificationTime) {
            $maxModificationTime = $modificationTime;
            $maxFile = $file;
        }
    }
    return [$maxFile, $maxModificationTime];
}

页脚现在显示文件夹中最新文件的日期

<?php
     $modificationTimes = getFileModificationTimes('/path/to/directory');
     list($maxFile, $maxModificationTime) = getMaxModificationTime($modificationTimes);
?>

<footer align="center">
    <hr width="900px" size="2" noshade="noshade" color="black" align="center">
    <div style="padding:0 30px">
        <p>Validated by:</p>
        <a href="https://validator.w3.org/check?uri=referer"><img src="https://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1" height="31" width="88"></a>
        <a href="https://jigsaw.w3.org/css-validator/check/referer"><img src="https://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>

        <p>The file with the most recent modification time is <?=$maxFile?>, which was modified at <?=date('Y-m-d H:i:s', $maxModificationTime)?>.
        </p>
    </div>
</footer>
nkkqxpd9

nkkqxpd92#

如果你想显示文件的修改时间,包括页脚,然后删除页脚文件中的$timestamp = filemtime(__FILE__);,并将其放在include()之前。
例如:

$timestamp = filemtime(__FILE__);
include('footer.php');

相关问题