- substr: documentation ( source)
- strpos: documentation ( source)
- array_shift: documentation ( source)
- implode: documentation ( source)
- explode: documentation ( source)
<?php
echo getRelativePath("/mnt/hgfs/home/Project1/src/AppBundle/Form/RegistrationType.php", "/mnt/hgfs/home/Project1/app");
function getRelativePath($path, $rootPath, $maxDepthCheck = 10){
if (0 === strpos($path, $rootPath)) {
return substr($path, strlen($rootPath));
}
$ds = DIRECTORY_SEPARATOR;
$rootDirectoryArray = explode($ds, $rootPath);
$pathDirectoryArray = explode($ds, $path);
$relativePath = $ds;
foreach ($rootDirectoryArray as $index => $rootCurrentDirectory) {
$pathCurrentDirectory = array_shift($pathDirectoryArray);
if ($pathCurrentDirectory !== $rootCurrentDirectory) {
$relativePath = $ds . '..' . $relativePath . $pathCurrentDirectory . $ds;
}
}
return $relativePath.implode($ds, $pathDirectoryArray);
}