Григорий Скок
77 сообщений
#14 лет назад
Запись числа в файл txt,doc и упаковка его в rar,zip архив с помощью zip.lib или иного , Важно нужно чтобы архив был с паролем.
Артем Л.
11416 сообщений
#14 лет назад
Такое можно сделать с помощью системных вызовов, командной строки...
Первое что нашел:
Ну и гугл в помощь:
Роман Беляев
16382 сообщения
#14 лет назад
greendark, берем винду, создаем файлик, пишем числа, пикуем винраром и вуаля!

Задачу поточнее бы описать. Что за система, что за язык...
Григорий Скок
77 сообщений
#14 лет назад
Hungry_Hunter спасибо
Григорий Скок
77 сообщений
#14 лет назад
frig, необходимо средствами PHP
Николай Т.
205 сообщений
#14 лет назад
Цитата ("greendark"):
frig, необходимо средствами PHP

гг, слишком просто всё
$ php script.php 123 e1it3
<?php
file_put_contents('/tmp/file', $argv);
exec("zip -9 -P {$argv} /tmp/file.zip /tmp/file");
Григорий Скок
77 сообщений
#14 лет назад
e1it3, Спасибо, это с помощью zip.lib ?
Разжуй пожалуйста каждый из четырех шагов
что за переменная, что там за скрипт? $ php script.php 123 e1it3 ?
Никита К.
1594 сообщения
#14 лет назад
greendark,
$ php script.php 123 e1it3
Это в командной строке *nix выполнение script.php использую интерпретатор PHP

<?php
file_put_contents('/tmp/file', $argv);
exec("zip -9 -P {$argv} /tmp/file.zip /tmp/file";
Это содержимое script.php
$argv - массив с переданными параметрами. (123 и e1it3)

exec("zip -9 -P {$argv} /tmp/file.zip /tmp/file";
Выполнение в командной строке ОС, на котором крутится PHP команды $ zip -9 -P {$argv} /tmp/file.zip /tmp/file
Григорий Скок
77 сообщений
#14 лет назад
Anexroid, спасибо
я так понимаю отсюда $argv - массив с переданными параметрами. (123 и e1it3) будет браться пароль для архива ?
Никита К.
1594 сообщения
#14 лет назад
Да, e1it3 - это пароль.
123 - число, которое будет записано в файл
Никита К.
1594 сообщения
#14 лет назад
Соответственно, с таким же успехом (если у вас не никсы) можно просто запустить скрипт

Оффтопик
<?php
$argv = 123;
$argv = 'e1it3';
file_put_contents('/tmp/file', $argv);
exec("zip -9 -P {$argv} /tmp/file.zip /tmp/file";
?>


Однако, к сожалению, на многих хостингах функция exec() заблокирована.
Григорий Скок
77 сообщений
#14 лет назад
Anexroid, действительно

Warning: file_put_contents() : open_basedir restriction in effect. File(/tmp/file) is not within the allowed path(s)

Warning: file_put_contents(/tmp/file) : failed to open stream: Operation not permitted
Warning: exec() has been disabled for security reasons

Как же быть?
Никита К.
1594 сообщения
#14 лет назад
Первые 2 warning'a - это решаемо. Просто выбираем другую папку и ставим права на чтение и запись.

А вот если отключена функция exec...
Есть много готовых классов, как здесь - так и в Google
Но толковых - ни одного.
Никита К.
1594 сообщения
#14 лет назад
Можно выдернуть из какого-либо фреймворка, например -

Но чтобы еще и пароль налепить...
Григорий Скок
77 сообщений
#14 лет назад
Так пароль налепить получается никак?
если только свой хостинг тогда включить exec()
а вообще функция exec() это же не безопасно? если она разрешена, с помощью ее можно немало наворотить на хосте
Николай Т.
205 сообщений
#14 лет назад
Цитата ("greendark"):
Anexroid, действительно

Warning: file_put_contents() : open_basedir restriction in effect. File(/tmp/file) is not within the allowed path(s)

Warning: file_put_contents(/tmp/file) : failed to open stream: Operation not permitted
Warning: exec() has been disabled for security reasons

Как же быть?

дать ссылку на phpinfo сервера
Николай Т.
205 сообщений
#14 лет назад
Цитата ("Anexroid"):
Оффтопик
<?php
$argv = 123;
$argv = 'e1it3';
file_put_contents('/tmp/file', $argv);
exec("zip -9 -P {$argv} /tmp/file.zip /tmp/file";
?>


полегче там с говнокодом, уже представляю как код обрастает парой лямов строк и потом начинается, а какого у нас из консоли аргументы не приходят...
Григорий Скок
77 сообщений
#14 лет назад
e1it3,
Григорий Скок
77 сообщений
#14 лет назад
Цитата ("e1it3"):
Цитата ("Anexroid"):
Оффтопик
<?php
$argv = 123;
$argv = 'e1it3';
file_put_contents('/tmp/file', $argv);
exec("zip -9 -P {$argv} /tmp/file.zip /tmp/file";
?>


полегче там с говнокодом, уже представляю как код обрастает парой лямов строк и потом начинается, а какого у нас из консоли аргументы не приходят...

не понял сути твоего комментария)
Николай Т.
205 сообщений
#14 лет назад
Цитата ("greendark"):
e1it3, ]http://www.greenidea.ru/wm/zip.php

php.ini есть возможность править?