<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Le code ici n'a rien à voir avec l'article,Juste un espace réservé</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"L'article est sur le point de commencer..."</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-comment"># Comment passer lstat Autorisations pour lire les fichiers pour les fonctions、Propriétés telles que la taille et l'horodatage?</span></span><span>
Quotidiennement PHP En cours de développement,Nous devons souvent obtenir des informations pertinentes sur les fichiers,Par exemple:Permis de fichier、Taille de fichier、Dernière visite、Dernier temps modifié, etc.。PHP Fournit une fonction très puissante —— **</span><span><span class="hljs-title function_ invoke__">lstat</span></span><span>()**,Cela peut nous aider à obtenir rapidement ces propriétés。
</span><span><span class="hljs-comment">## lstat() Fonction Introduction</span></span><span>
`</span><span><span class="hljs-title function_ invoke__">lstat</span></span><span>()` et `</span><span><span class="hljs-title function_ invoke__">stat</span></span><span>()` similaire,Tous sont utilisés pour obtenir des informations de fichier,La différence est:
- **</span><span><span class="hljs-title function_ invoke__">stat</span></span><span>()**:Suivra le lien symbolique,Renvoyer les informations du fichier cible。
- **</span><span><span class="hljs-title function_ invoke__">lstat</span></span><span>()**:不Suivra le lien symbolique,Au lieu de cela, retournez les informations du lien symbolique lui-même。
Ceci est particulièrement important lorsqu'il s'agit de liens souples。
Le prototype de fonction est le suivant:
```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>
$ Nom de fichier : le chemin du fichier vers lequel les informations sont nécessaires.
Valeur de retour: un tableau contenant des informations de fichier, en cas d'échec, renvoie false .
Le tableau renvoyé par LSTAT () contient plusieurs indices et noms de clés, correspondant à différentes propriétés du fichier. Les communs sont:
Dev : numéro de périphérique
Numéro de nœud ino : inode
MODE : Type de fichier et autorisation (doit être interprété via Decoct () ou l'opération de bit)
Nlink : nombre de liens durs
UID : ID utilisateur
GID : ID de groupe
Taille : taille du fichier (octets)
Atime : Dernier temps d'accès (horodatage UNIX)
mtime : Dernier temps modifié (horodatage UNIX)
ctime : temps de modification inode (horodatage UNIX)
L'exemple suivant montre comment lire les autorisations, tailles, horodatages et autres propriétés d'un fichier:
<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">// Obtenir les propriétés du fichier</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">"Taille de fichier: "</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">" octet\n"</span></span><span>;
</span><span><span class="hljs-comment">// 转换Permis de fichier为八进制表示</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">"Permis de fichier: "</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">// Informations sur l'horodatage de sortie</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Dernière visite: "</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">"Dernière heure modifiée: "</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 Temps de modification: "</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">"Impossible d'obtenir des informations de fichier。\n"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Lorsque nous devons obtenir des informations sur le fichier, LSTAT () et STAT () peuvent être utilisées.
Si le chemin de fichier peut être un lien symbolique et que ce que vous devez afficher est les propriétés du lien lui-même, vous devez utiliser lStat () .
Grâce à LSTAT () , nous pouvons facilement obtenir des autorisations de fichiers, des tailles, des horodatages et d'autres attributs, offrant une grande commodité pour la gestion des fichiers, l'analyse des journaux et d'autres scénarios.
<span></span>