нужно зипнуть папку решил делать это через команду exec('zip -r ') проблема в том что exec выводит инфу в поток как это убрать? и вобще правильно ли так делать или может использовать сжатие через пхп?
Exec лучше не использовать, похацкают и это не шутка Многие умы пали, под грозным натиском кулхацкеров По своему опыту скажу, что это самая п*тая вещь, которую придумало человечество: http://php.net/manual/en/function.ziparchive-open.html Должно быть легко и просто: Код (Text): $zip = new ZipArchive; $res = $zip->open('test.zip', ZipArchive::CREATE); $zip->addFromString('test.txt', 'file content goes here'); $zip->addFile('data.txt', 'entryname.txt'); $zip->close(); Фишка в том, что надо самостоятельно, рекурсивно заталкивать все файлы в этот архив.
Тогда это прекрасно, в целом не очень понимаю какой у тебя лишний вывод ведется, на крайняк пробни так ob_start(); exec('gzip -R'); ob_end_clean(); аналогично можно сделать так $output = `gzip -R`; Весь вывод, пойдет в переменную, по идее exec тоже ничего не должен выводить на экран.
Кстате string exec ( string $command [, array &$output [, int &$return_var ]] ) command Команда (имя программы с аргументами - прим.пер.), которая будет исполнена. output Если параметр output указан, то массив будет заполнен строками вывода программы. Завершающие пробелы, такие как \n (перевод строки - прим.пер.), включены в массив не будут. Обратите внимание, что если массив уже содержит какие-либо элементы перед вызовом функции exec(), то вывод команды будет дописан в конец массива. Если же вы не хотите дополнять предыдущее содержимое массива, следует вызвать функцию unset() с именем массива в качестве аргумента перед его передачей в качестве аргумента функции exec(). return_var Если заданы оба параметра return_var и output, то при выходе эта переменная будет содержать статус завершения внешней программы. http://php.net/manual/ru/function.exec.html Вторым параметром передай какую нить переменную, он будет туда толкать всё. Воистину экзотическая функция