function PclZipUtilPathInclusion in Loft Data Grids 7.2
Same name and namespace in other branches
- 6.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/PCLZip/pclzip.lib.php \PclZipUtilPathInclusion()
2 calls to PclZipUtilPathInclusion()
- PclZip::privCalculateStoredFilename in vendor/
phpoffice/ phpexcel/ Classes/ PHPExcel/ Shared/ PCLZip/ pclzip.lib.php - PclZip::privExtractFile in vendor/
phpoffice/ phpexcel/ Classes/ PHPExcel/ Shared/ PCLZip/ pclzip.lib.php
File
- vendor/
phpoffice/ phpexcel/ Classes/ PHPExcel/ Shared/ PCLZip/ pclzip.lib.php, line 5477
Code
function PclZipUtilPathInclusion($p_dir, $p_path) {
$v_result = 1;
// ----- Look for path beginning by ./
if ($p_dir == '.' || strlen($p_dir) >= 2 && substr($p_dir, 0, 2) == './') {
$p_dir = PclZipUtilTranslateWinPath(getcwd(), FALSE) . '/' . substr($p_dir, 1);
}
if ($p_path == '.' || strlen($p_path) >= 2 && substr($p_path, 0, 2) == './') {
$p_path = PclZipUtilTranslateWinPath(getcwd(), FALSE) . '/' . substr($p_path, 1);
}
// ----- Explode dir and path by directory separator
$v_list_dir = explode("/", $p_dir);
$v_list_dir_size = sizeof($v_list_dir);
$v_list_path = explode("/", $p_path);
$v_list_path_size = sizeof($v_list_path);
// ----- Study directories paths
$i = 0;
$j = 0;
while ($i < $v_list_dir_size && $j < $v_list_path_size && $v_result) {
// ----- Look for empty dir (path reduction)
if ($v_list_dir[$i] == '') {
$i++;
continue;
}
if ($v_list_path[$j] == '') {
$j++;
continue;
}
// ----- Compare the items
if ($v_list_dir[$i] != $v_list_path[$j] && $v_list_dir[$i] != '' && $v_list_path[$j] != '') {
$v_result = 0;
}
// ----- Next items
$i++;
$j++;
}
// ----- Look if everything seems to be the same
if ($v_result) {
// ----- Skip all the empty items
while ($j < $v_list_path_size && $v_list_path[$j] == '') {
$j++;
}
while ($i < $v_list_dir_size && $v_list_dir[$i] == '') {
$i++;
}
if ($i >= $v_list_dir_size && $j >= $v_list_path_size) {
// ----- There are exactly the same
$v_result = 2;
}
else {
if ($i < $v_list_dir_size) {
// ----- The path is shorter than the dir
$v_result = 0;
}
}
}
// ----- Return
return $v_result;
}