Как объединить два файла на php?

Как объединить два файла на php без чтения данных из них? Т.е. создать функцию-аналог cat, чтобы обойтись только файловыми операциями, не прибегая к shell_exec.

Есть идеи?
  • Вопрос задан
  • 534 просмотра
Решения вопроса 2
@levantez
$files = [
  '1.file',
  '2.file',
];
$resultFile = 'result.file';
$res = fopen($resultFile,'a+');
foreach ($files as $file) {
  $f = fopen($file,'r');
  while (!feof($f)) {
    $contents = fread($f,8192);
    fputs($res,$contents);
  }
}
Ответ написан
Комментировать
@rPman
Окей, буду умничать, если нужно объединить файлы именно на php (лимит памяти, нельзя вызывать сторонние утилиты shell_exec и т.п.) то делать это придется по частям.

Читаем от файла сколько то килобайт в память, пишем столько же в результирующий, снова читаем кусочек... потом повторяем со вторым.

fopen
fread
fwrite
fclose

больше работы с отслеживанием граничных ситуаций (пустые или отсутствующие файлы или нехватка места)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Правило номер 1: если у вас есть какая-то завиральная идея, типа "а решите мне вот такую-то примитивную стандартную задачу, но только вот с такими, такими и такими ограничениями", необходимо аргументировать свою задачу. То есть объяснять причины, которые привели вас к такой постановке вопроса.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы