[英]How to respond to password prompts with exec()
我知道问题的标题有点奇怪。 但是我不知道我要做什么。 所以,开始了
我正在使用一个简单的ADOBE AIR应用生成器,
生成所有必要文件并使用文件adt
签名应用程序之后
我应该-生成实际的.air
文件。 提供所有参数后,将要求输入密码。
我该怎么做? 救命!
PS-如果您想表达我的意思,请发表评论:D
[UPDATE]
如果放
adt -package -storetype pkcs12 -keystore sampleCert.pfx HelloWorld.air HelloWorld-app.xml HelloWorld.html AIRAliases.js
在命令行中,提示输入密码。 可以输入-使用控制台时。
在执行php exec();
时应该如何提供它exec();
?
我认为您将需要使用proc_open而不是exec: http ://us3.php.net/manual/zh/function.proc-open.php根据示例,您将执行以下操作:
$adt_command = "adt -package -storetype pkcs12 -keystore sampleCert.pfx HelloWorld.air HelloWorld-app.xml HelloWorld.html AIRAliases.js";
$password = "keystore_password";
$process = proc_open($adt_command, $descriptorspec, $pipes, $cwd, $env);
if (is_resource($process)) {
fwrite($pipes[0], $password);
fclose($pipes[0]);
$return_value = proc_close($process);
}
显然,您可以在命令行上指定密码。 查看他们的文档,然后在-storepass
和-keypass
上进行查找。
-storepass password1-访问密钥库所需的密码。 如果未指定,则ADT提示输入密码。
-keypass password2-访问用于对AIR应用程序签名的私钥所需的密码。 如果未指定,则ADT提示输入密码。
您可以像这样构建所需的命令:
<?php
$command = "/path/to/adt -package -storetype pkcs12 -storepass password -keypass password -keystore /path/to/sampleCert.pfx /path/to/HelloWorld.air /path/to/HelloWorld-app.xml /path/to/HelloWorld.html /path/to/AIRAliases.js";
$output = exec($command);
?>
确保包括adt
二进制文件的路径以及构建所需的文件。
如果我对您的理解正确,那么您想通过PHP exec()
调用ADP
吗?
为了控制诸如ADP之类的命令行工具的输入和输出,您可以查看proc_open
,使用它可以处理输入,输出和错误管道。
可以得到关于这些详细信息, 在这里 PHP手册。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.