Skip to content

$file.isChildOf

Description

Indique si le path d'un dossier ou d'un fichier désigne bien un élément appartenant à la sous-arborescence d'un dossier donné. La méthode permet de vérifier qu'un path ne pointe pas sur un emplacement situé en-dehors d'un répertoire donné.

La méthode normalise le path afin de résoudre les .. et elle traduit les liens symboliques en path absolu.

Syntaxe

$file.isChildOf( base , child )

Paramètres

base file / string
Répertoire de base
child file / string
Répertoire ou fichier dont on souhaite vérifier qu'il appartient bien à la sous-arborescence de base.

Retour

Retourne true si le child se trouve bien dans la sous-arborescence de base. Retourne false dans le cas contraire ou si une erreur s'est lors de la vérification produite.

Exemple

L'exemple ci-dessous part du principe que /opt/real est un répertoire physique, alors que /opt/link est un lien symbolique renvoyant sur /home/user/some/folder.

1
2
3
4
5
$file.normalizePath("/opt/real");       // /opt/real
$file.normalizePath("/opt/link");       // /home/user/some/folder

$file.isChildOf("/opt", "/opt/real");   // true
$file.isChildOf("/opt", "/opt/link");   // false