In PHP wird die Funktion der Touch () häufig verwendet, um die Zugriffszeit und Änderung der Datei zu ändern oder eine leere Datei zu erstellen, wenn die Datei nicht vorhanden ist. Die vollständige Syntax dieser Funktion lautet wie folgt:
bool touch(string $filename, int $mtime = time(), int $atime = $mtime)
Aus der Funktionsdefinition ist ersichtlich, dass Touch () drei Parameter enthält:
$ Dateiname : Der Dateipfad zum Betrieb.
$ mtime : Optional, legt die Dateiänderungszeit fest (Standardzeit ist die aktuelle Zeit).
$ atime : Optional legt die Zugriffszeit der Datei fest (die Standardeinstellung ist mit $ mtime dieselbe).
Dies bezieht sich auf die letzte Änderungszeit der Datei in einem Unix -Zeitstempel (Sekunden seit dem 1. Januar 1970). Wenn die Datei vorhanden ist, wird die Mime auf diese Zeit aktualisiert. Wenn die Datei nicht vorhanden ist, wird eine neue Datei erstellt und die Zeit wird festgelegt.
Dieser Parameter wird verwendet, um die letzte Zugriffszeit der Datei festzulegen und befindet sich auch im Unix -Zeitstempelformat. Diese Zeit kann sich von $ mtime unterscheiden und wird verwendet, um die Metadaten der Datei sorgfältiger zu steuern.
Das Folgende ist ein Beispiel, um die tatsächliche Verwendung dieser beiden Parameter zu veranschaulichen.
<?php
// Nehmen Sie den Dateipfad zum Betrieb an
$filename = 'example.txt';
// Zeit setzen:2023-01-01 12:00:00
$mtime = strtotime('2023-01-01 12:00:00');
// Stellen Sie die Zugriffszeit fest:2022-12-31 23:59:59
$atime = strtotime('2022-12-31 23:59:59');
// verwenden touch() Setzen Sie die Datei mtime Und atime
if (touch($filename, $mtime, $atime)) {
echo "Die Änderung der Dateizeit war erfolgreich";
} else {
echo "Die Änderung der Dateizeit fehlgeschlagen";
}
?>
In diesem Code wird es erstellt, falls es beispielsweise txt vorhanden ist. Die Änderungszeit wird dann am 1. Januar 2023 auf 12 Uhr festgelegt, und die Zugangszeit wird am 31. Dezember 2022 auf 23:59:59 Uhr festgelegt.
Geschmiedete Dateizeit : In Tests oder spezifische Geschäftslogik muss der Zeitstempel der Datei möglicherweise auf eine bestimmte historische Zeit eingestellt werden.
Kooperieren Sie mit dem Caching -Mechanismus : Einige Cache -Systeme bestimmen, ob Inhalte basierend auf der Dateimodifikationszeit aktualisiert werden sollen, und das manuelle Einstellen von Zeitstempeln kann das Cache -Verhalten steuern.
Simulieren Sie Benutzerzugriffsprotokolle : Beim Erstellen eines Protokollsimulationssystems können Sie Atime festlegen, um das Dateizugriffsverhalten des Benutzers zu simulieren.
Wenn der Server bestimmte Sicherheitseinstellungen aktiviert, z. B. zeitbasierte Zugriffskontrolle von Dateien (z. B. Sicherungsskripte, die nur kürzlich geänderte Dateien verarbeiten), kann die Änderungszeit das Verhalten des Programms beeinflussen. Daher müssen Sie bei Verwendung von Touch () besonders vorsichtig sein, um Nebenwirkungen zu vermeiden.
Angenommen, der Benutzer lädt ein Bild hoch und wir möchten seinen Zeitstempel auf den 31. Dezember 2024 festlegen.
<?php
$uploadPath = '/var/www/gitbox.net/uploads/user_photo.jpg';
$mtime = strtotime('2024-12-31 00:00:00');
if (touch($uploadPath, $mtime)) {
echo "Die Zeitstempeleinstellung ist erfolgreich";
}
?>
Der obige Code repariert die Zeit, in der ein Benutzer der Gitbox.net -Website Bilder hochladen, was für die nachfolgende Dateiverwaltung oder das Systemdocking geeignet ist.
Die zweite und dritte Parameter von Touch () bieten Entwicklern eine feine Kontrolle über die Dateizeit. Unabhängig davon, ob in der Protokollsimulation, der Cache-Steuerung oder der Fälschung von Meta-Informationsdateien die rationale Verwendung dieser beiden Parameter zu größerer Flexibilität führen kann. Wenn Sie diese Fähigkeit beherrschen, können Sie bei der Verarbeitung von Logik mit systembezogenen Dateien komfortabler werden.