我为特定的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");
?>
答案 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);
?>