как объединить файлы в соответствии с выбором флажка с помощью системного вызова в PHP - PullRequest
0 голосов
/ 17 мая 2010

У меня есть несколько файлов в php, мне нужно объединить на основе выбора флажков. Если один флажок выбран объединить в соответствии с требованием и т. Д. Это я должен сделать с помощью системного вызова, и я работаю в php и ssh (безопасный клиент оболочки)

1 Ответ

0 голосов
/ 17 мая 2010

Предполагая, что вы получаете файлы в массив, с 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, в зависимости от конфигурации вашей системы. Мне любопытно узнать, где необходимость делать это с системными вызовами, большие ли эти файлы?

...