protected function File_Iterator_Facade::getCommonPath in Zircon Profile 8.0
Same name and namespace in other branches
- 8 vendor/phpunit/php-file-iterator/src/Facade.php \File_Iterator_Facade::getCommonPath()
Returns the common path of a set of files.
Parameters
array $files:
Return value
string
1 call to File_Iterator_Facade::getCommonPath()
- File_Iterator_Facade::getFilesAsArray in vendor/
phpunit/ php-file-iterator/ src/ Facade.php
File
- vendor/
phpunit/ php-file-iterator/ src/ Facade.php, line 75
Class
- File_Iterator_Facade
- Façade implementation that uses File_Iterator_Factory to create a File_Iterator that operates on an AppendIterator that contains an RecursiveDirectoryIterator for each given path. The list of unique files is returned as an array.
Code
protected function getCommonPath(array $files) {
$count = count($files);
if ($count == 0) {
return '';
}
if ($count == 1) {
return dirname($files[0]) . DIRECTORY_SEPARATOR;
}
$_files = array();
foreach ($files as $file) {
$_files[] = $_fileParts = explode(DIRECTORY_SEPARATOR, $file);
if (empty($_fileParts[0])) {
$_fileParts[0] = DIRECTORY_SEPARATOR;
}
}
$common = '';
$done = FALSE;
$j = 0;
$count--;
while (!$done) {
for ($i = 0; $i < $count; $i++) {
if ($_files[$i][$j] != $_files[$i + 1][$j]) {
$done = TRUE;
break;
}
}
if (!$done) {
$common .= $_files[0][$j];
if ($j > 0) {
$common .= DIRECTORY_SEPARATOR;
}
}
$j++;
}
return DIRECTORY_SEPARATOR . $common;
}