<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Der Code hier hat nichts mit dem Artikel zu tun,Nur ein Platzhalter</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Der Artikel wird beginnen, beginnen zu beginnen..."</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-comment"># Wie man passt lstat Berechtigungen zum Lesen von Dateien für Funktionen、Eigenschaften wie Größe und Zeitstempel?</span></span><span>
Täglich PHP In der Entwicklung,Wir müssen häufig relevante Informationen über Dateien erhalten,Zum Beispiel:Dateiberechtigungen、Dateigröße、Letzte Besuchszeit、Letzte modifizierte Zeit usw.。PHP Bietet eine sehr leistungsstarke Funktion —— **</span><span><span class="hljs-title function_ invoke__">lstat</span></span><span>()**,Es kann uns helfen, diese Eigenschaften schnell zu bekommen。
</span><span><span class="hljs-comment">## lstat() Funktion Einführung</span></span><span>
`</span><span><span class="hljs-title function_ invoke__">lstat</span></span><span>()` Und `</span><span><span class="hljs-title function_ invoke__">stat</span></span><span>()` ähnlich,Alle werden verwendet, um Dateiinformationen zu erhalten,Der Unterschied ist:
- **</span><span><span class="hljs-title function_ invoke__">stat</span></span><span>()**:Wird dem symbolischen Link folgen,Geben Sie die Informationen der Zieldatei zurück。
- **</span><span><span class="hljs-title function_ invoke__">lstat</span></span><span>()**:不Wird dem symbolischen Link folgen,Geben Sie stattdessen die Informationen des symbolischen Links selbst zurück。
Dies ist besonders wichtig, wenn es um weiche Links geht。
Der Funktionsprototyp ist wie folgt:
```php
</span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-title function_ invoke__">lstat</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$filename</span></span><span>)
</span></span>
$ Dateiname : Der Dateipfad, zu dem Informationen erforderlich sind.
Rückgabewert: Ein Array mit Dateiinformationen, wenn es fehlschlägt, gibt False zurück.
Das von lstat () zurückgegebene Array enthält mehrere Indexs und Schlüsselnamen, die unterschiedlichen Eigenschaften der Datei entsprechen. Gemeinsame sind:
Dev : Geräteummer
INO : Inode -Knotennummer
Modus : Dateityp und Berechtigungen (müssen über DECOCT () oder Bit Operation interpretiert werden)
Nlink : Anzahl der harten Links
UID : Benutzer -ID
GID : Gruppen -ID
Größe : Dateigröße (Bytes)
Atime : Letzte Zugriffszeit (UNIX -Zeitstempel)
Mtime : Letzte modifizierte Zeit (UNIX -Zeitstempel)
CTime : Inode -Modifikationszeit (UNIX -Zeitstempel)
Das folgende Beispiel zeigt, wie die Berechtigungen, Größen, Zeitstempel und andere Eigenschaften einer Datei gelesen werden:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$filename</span></span><span> = </span><span><span class="hljs-string">"example.txt"</span></span><span>;
</span><span><span class="hljs-comment">// Holen Sie sich Dateieigenschaften</span></span><span>
</span><span><span class="hljs-variable">$fileInfo</span></span><span> = </span><span><span class="hljs-title function_ invoke__">lstat</span></span><span>(</span><span><span class="hljs-variable">$filename</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$fileInfo</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Dateigröße: "</span></span><span> . </span><span><span class="hljs-variable">$fileInfo</span></span><span>[</span><span><span class="hljs-string">'size'</span></span><span>] . </span><span><span class="hljs-string">" Byte\n"</span></span><span>;
</span><span><span class="hljs-comment">// 转换Dateiberechtigungen为八进制表示</span></span><span>
</span><span><span class="hljs-variable">$permissions</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-title function_ invoke__">sprintf</span></span><span>(</span><span><span class="hljs-string">'%o'</span></span><span>, </span><span><span class="hljs-variable">$fileInfo</span></span><span>[</span><span><span class="hljs-string">'mode'</span></span><span>]), -</span><span><span class="hljs-number">4</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Dateiberechtigungen: "</span></span><span> . </span><span><span class="hljs-variable">$permissions</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-comment">// Ausgabe von Zeitstempelinformationen</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Letzte Besuchszeit: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">"Y-m-d H:i:s"</span></span><span>, </span><span><span class="hljs-variable">$fileInfo</span></span><span>[</span><span><span class="hljs-string">'atime'</span></span><span>]) . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Letzte modifizierte Zeit: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">"Y-m-d H:i:s"</span></span><span>, </span><span><span class="hljs-variable">$fileInfo</span></span><span>[</span><span><span class="hljs-string">'mtime'</span></span><span>]) . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"inode Änderungszeit: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">"Y-m-d H:i:s"</span></span><span>, </span><span><span class="hljs-variable">$fileInfo</span></span><span>[</span><span><span class="hljs-string">'ctime'</span></span><span>]) . </span><span><span class="hljs-string">"\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Dateiinformationen können nicht abgerufen werden。\n"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Wenn wir Dateiinformationen abrufen müssen, können sowohl lstat () als auch stat () verwendet werden.
Wenn der Dateipfad ein symbolischer Link sein kann und Sie die Eigenschaften des Links selbst anzeigen müssen, sollten Sie Lstat () verwenden.
Über lstat () können wir leicht Dateiberechtigungen, Größen, Zeitstempel und andere Attribute erhalten, wobei wir eine große Bequemlichkeit für Dateiverwaltung, Protokollanalyse und andere Szenarien bieten.
<span></span>