Export only certain files from a project directory to an external directory. Operating system: linux (can be addapted to Windows).
Define a short list of files which will be exported.
The PHP script also creates recursively the target directories. This will spare the user from waisting a lot of time creating complex folder/subfolder structures.
Define a short list of files which will be exported.
The PHP script also creates recursively the target directories. This will spare the user from waisting a lot of time creating complex folder/subfolder structures.
<?php
$files = '
folder1/folder2/folder3/folder4/file1.php
folder1/folder2/folder3/folder4/file2.php
folder1/folder2/folder5/folder6/folder7/file3.php
folder1/folder2/folder5/folder6/folder8/folder9/file4.php
';
$project_path = '/absolute-current-path-of-the-project';
$project_path_export = '/absolute-target-path-of-the-export-folder';
$files_array = explode("\n", trim($files));
foreach($files_array as $f) {
$f = trim($f);
if(is_file($project_path . '/' . $f)) {
// make target dir if necessary
$dirs = explode('/', $project_path_export . '/' . $f);
unset($dirs[count($dirs) - 1]);
$dir_target = implode('/', $dirs);
if(!is_dir($dir_target)) {
shell_exec("mkdir -p $dir_target");
}
// copy file
if(is_dir($dir_target)) {
shell_exec("cp {$project_path}/{$f} {$dir_target}/");
}
}
}
$files = '
folder1/folder2/folder3/folder4/file1.php
folder1/folder2/folder3/folder4/file2.php
folder1/folder2/folder5/folder6/folder7/file3.php
folder1/folder2/folder5/folder6/folder8/folder9/file4.php
';
$project_path = '/absolute-current-path-of-the-project';
$project_path_export = '/absolute-target-path-of-the-export-folder';
$files_array = explode("\n", trim($files));
foreach($files_array as $f) {
$f = trim($f);
if(is_file($project_path . '/' . $f)) {
// make target dir if necessary
$dirs = explode('/', $project_path_export . '/' . $f);
unset($dirs[count($dirs) - 1]);
$dir_target = implode('/', $dirs);
if(!is_dir($dir_target)) {
shell_exec("mkdir -p $dir_target");
}
// copy file
if(is_dir($dir_target)) {
shell_exec("cp {$project_path}/{$f} {$dir_target}/");
}
}
}
No comments:
Post a Comment