function _views_bulk_operations_archive_action_create_filename in Views Bulk Operations (VBO) 7.3
Create a sanitized and unique version of the provided filename.
Parameters
string $filename: The filename to create.
array $archive_list: The list of files already in the archive.
Return value
string The new filename.
1 call to _views_bulk_operations_archive_action_create_filename()
- views_bulk_operations_archive_action in actions/
archive.action.inc - Since Drupal's Archiver doesn't abstract properly the archivers it implements (Archive_Tar and ZipArchive), it can't be used here.
File
- actions/
archive.action.inc, line 178 - Provides an action for creating a zip archive of selected files.
Code
function _views_bulk_operations_archive_action_create_filename($filename, $archive_list) {
// Strip control characters (ASCII value < 32). Though these are allowed in
// some filesystems, not many applications handle them well.
$filename = preg_replace('/[\\x00-\\x1F]/u', '_', $filename);
if (substr(PHP_OS, 0, 3) == 'WIN') {
// These characters are not allowed in Windows filenames.
$filename = str_replace(array(
':',
'*',
'?',
'"',
'<',
'>',
'|',
), '_', $filename);
}
if (in_array($filename, $archive_list)) {
// Destination file already exists, generate an alternative.
$pos = strrpos($filename, '.');
if ($pos !== FALSE) {
$name = substr($filename, 0, $pos);
$ext = substr($filename, $pos);
}
else {
$name = $filename;
$ext = '';
}
$counter = 0;
do {
$filename = $name . '_' . $counter++ . $ext;
} while (in_array($filename, $archive_list));
}
return $filename;
}