Предполагая, что вы получаете файлы в массив, с HTML, как
<?php
$files = array('file1.txt', 'file2.txt', 'file3.txt');
?>
<form action="action.php" method="post">
<?php foreach ($files as $k => $files) { ?>
<input type="checkbox" name="files[<?php echo $k;?>]" value="<?=$k;?>" />
<?php } ?>
<input type="submit" name="submit" value="ok" />
</form>
Вы можете получить доступ к флажку с php
<?php
//I've made assumption outfile is in same path as source files
$path = '/var/www/whatever/to/files/';
$dest_file = $path . 'out.txt';
//create empty file if not exists
passshtru("touch $dest_file;");
foreach ($_POST['files'] as $key) {
$source_file = $path . $files[$key];
//co contactenation using shell redirect
passthru("cat $source_file >> $dest_file;");
}
//do whatever you want with generated file in /var/www/whatever/to/files/out.txt
Вам может потребоваться указать реальный путь к двоичным файлам touch
и cat
, в зависимости от конфигурации вашей системы.
Мне любопытно узнать, где необходимость делать это с системными вызовами, большие ли эти файлы?