shell_exec openssl и окончание ввода из стандартного ввода

igeo

Новичок
shell_exec openssl и окончание ввода из стандартного ввода

вобщем пример:
на php есть скрипт который обращается к системе:
fputs (fopen ($f, "w"), $str);//--записываем строку в файл
...
$encstr=shell_exec("openssl rsautl -in ".$f." -inkey path/to/key -pubin -encrypt");
где $f путь к файлу содержащему строку.
Приходится создавать временный файл, записывать в него строку, потом его стирать.
Так я сделал, потому что тупо не знаю, как показать системе, что ввод строки завершон.
В доках openssl rsautl написано:
----
-in filename
Эта опция указывает входной файл. Если опция не указана, будет использоваться стандартный ввод.
----
То есть, если сделать без -in :
shell_exec("openssl rsautl -inkey path/to/key -pubin -encrypt ".$str);
то система висит и ждёт, когда наступит завершение ввода строки ($str)
Вот мне тупому и интересно какой символ "вписать" в конец стоки $str (как в линухе так и в виндах), чтобы система поняла, что ввод данных закончен и можно уже шифровать.
я этого не смог сделать даже в виндах в cmd. (к примеру если нажать enter просто перевод строки произойдёт, и система дальше ждёт ввода следующих символов).
я чуствую, что это настолько тупойи вопрос, что о нём никто и не пишет, вобщем не нашол я где про это написано.
Подскажите кто знает или направте туда где можно об этом прочитать.
 

igeo

Новичок
спасибо за "04 END OF TRANSMISSION"
я ведь говорил что это тупой вопрос :)
---
file_put_contents (PHP 5)
На сервере php4. Да есть ещё такие места.
 

dimagolov

Новичок
igeo, с чего ты взял, что на пхп4 нету file_put_contents? в пхп 5 была добавлена поддержка контекстов только
 

igeo

Новичок
в этой теме обсуждается: shell_exec openssl и ввод из стандартного ввода
не потеме флеймить не буду.

-~{}~ 14.12.09 13:58:

вобщем я решил проблему передачи строки в openssl:
$encstr=shell_exec("echo ".$str." | openssl rsautl -inkey path/to/key -pubin -encrypt");
пояснение:
передача идёт с помощью конвеера: stdout от echo в stdin openssl rsautl.
ответ был найден в статье "Advanced Bash-Scripting Guide" автор Mendel Cooper

тему можно закрыть
 
Сверху