繁体   English   中英

如何使用exec()响应密码提示

[英]How to respond to password prompts with exec()

我知道问题的标题有点奇怪。 但是我不知道我要做什么。 所以,开始了

我正在使用一个简单的ADOBE AIR应用生成器,

生成所有必要文件并使用文件adt签名应用程序之后

我应该-生成实际的.air文件。 提供所有参数后,将要求输入密码。

我该怎么做? 救命!

使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM