La syntaxe de base de la fonction Link () est la suivante:
<code> lien (chaîne $ cible, chaîne $ link) </code>
$ cible est le chemin du fichier cible existant
$ lien est le chemin du lien dur à créer
Exemple:
<code> <? php $ cible = "gitbox.net/files/original.txt"; $ link = "gitbox.net/files/hardlink.txt"; if (link ($ cible, $ link)) {
Echo "Hard Link a été créé avec succès!";
} autre {
Echo "Création du lien dur a échoué.";
}
?>
</code>
Un lien dur est essentiellement plusieurs entrées de répertoire qui pointent vers les mêmes données de fichier, donc:
Partage d'autorisation <br> Les liens durs et le fichier d'origine partagent les mêmes paramètres d'autorisation car ils indiquent le même contenu et les mêmes métadonnées. Cela signifie que les autorisations sont les mêmes quel que soit le chemin par lequel le fichier est accessible.
Impact de la modification de l'autorisation <br> Faire des modifications d'autorisation aux liens durs ou aux fichiers d'origine modifie en fait les autorisations du fichier lui-même, et tous les liens seront affectés.
L'impact de la suppression des fichiers <br> Supprimez l'un des liens durs, supprimez simplement l'élément de répertoire, les données du fichier existent toujours, tant qu'il existe d'autres liens durs.
Supposons qu'il existe un fichier gitbox.net/files/original.txt l'autorisation est 0644 (le propriétaire peut lire et écrire, d'autres utilisateurs peuvent lire):
<code> <? php $ cible = "gitbox.net/files/original.txt"; $ link = "gitbox.net/files/hardlink.txt"; // Créer des liens durs
if (link ($ cible, $ link)) {
Echo "Le lien dur a été créé avec succès. \ n";
}
// Afficher les autorisations
Echo Sprintf ("Autorisations:% O \ n", FilePerms ($ Target) & 0777);
// Modifier les autorisations
chmod ($ link, 0666);
Echo "Après avoir modifié les autorisations de lien dur: \ n";
Echo Sprintf ("Autorisations de fichiers d'origine:% O \ n", FilePerms ($ Target) & 0777);
Echo sprintf ("Autorisations de liaison dure:% o \ n", filePerms ($ link) & 0777);
?>
</code>
Les résultats en cours d'exécution montrent qu'après avoir modifié les autorisations du lien dur, les autorisations de fichier d'origine ont également été modifiées car elles étaient des chemins différents vers le même fichier.
Les liens durs ne peuvent être créés que dans le même système de fichiers et ne peuvent pas être des points croisés ou des points transversaux.
Les fichiers de répertoire n'autorisent généralement pas les liens durs (restrictions Linux) et ne peuvent être utilisés que sur des fichiers ordinaires.
Les liens souples (Symlinks) sont différents des liens durs, et les autorisations de liens souples et les autorisations de fichiers cibles ne sont pas liées.
La fonction Link () de PHP crée un lien dur et plusieurs liens partagent les mêmes autorisations de fichier.
La modification des autorisations du lien dur ou du fichier d'origine affectera tous les liens vers le fichier.
Les liens durs conviennent aux scénarios où l'accès multi-chemin est requis pour la cohérence des données.
En comprenant le mécanisme d'interaction entre la fonction et les autorisations de la fonction et du fichier de PHP, nous pouvons mieux gérer le système de fichiers et éviter le chaos d'autorisation et la mauvaise opération.