PHP如何使用数据每天生成新文件txt

时间:2018-01-16 22:25:40

标签: php

我为特定的txt文件创建了数据集合。我需要脚本每天分隔记录。

例如:今天是100个数据,我需要一个log16Jan.txt文件,明天我们有52个数据,我需要一个log17Jan.txt文件?

我怎么能这样做?

<?php
    $name = $_POST['name'];



    $tekst = "Name: $namee \r\n";

    $uchwyt = fopen("log.txt", "a");
    fwrite($uchwyt, $tekst);
    fclose($uchwyt);
    header("Location: http://#/complete.html");
    ?>

2 个答案:

答案 0 :(得分:0)

您可以使用date() function获取日期并将其添加到文件名中,如下所示:

$name = $_POST['name'];
$tekst = "Name: $name \r\n";

// Adding today's date to the log file
$uchwyt = fopen("log".date("dM").".txt", "a");

fwrite($uchwyt, $tekst);
fclose($uchwyt);
header("Location: http://#/complete.html");

答案 1 :(得分:0)

您可以使用date()功能。

由于您正在创建日志文件,因此您应该考虑使用日志文件名,该名称将按目录列表中的日期顺序进行本机排序。这样可以更轻松地在大型文件列表中查找特定的日志文件。它还将为您提供更多日志文件清理/删除选项。

例如:

// 2018-01-16-log.txt
$logFilename = date("Y-m-d") . "-log.txt";

$uchwyt = fopen($logFilename, "a");

更新:根据您在每个日志行之前添加行号的请求,有很多方法可以执行此操作,有些方法取决于您的服务器环境(Linux / Windows)。您可以从日志中读取每一行并保留一个计数器。或者您可以使用服务器实用程序,例如Linux wc(字数统计)。这是一种方法:

<?php
        // 2018-01-16-log.txt
        $logFilename = date("Y-m-d") . ".log";

        echo "Log file = $logFilename\n";

        if (! file_exists($logFilename)) {
                $count = 0;
        } else {
                // use Linux wc utility
                $count = system("wc -l < $logFilename");

                $count = trim($count);
        }
        echo "Lines = '$count'\n";

        $name = $_POST['name'];

        if (! $name) {
                $name = "NONE";
        }

        $tekst = "$count. Name: $name \n";

        $uchwyt = fopen($logFilename, "a");

        fwrite($uchwyt, $tekst);

        fclose($uchwyt);
?>