我正在尝试使用PHP为amazon的AWS api创建签名请求。我对PHP不太熟悉所以这个问题可能看起来非常明显,所以我很抱歉 -
亚马逊提供了用于生成使用其API的签名请求的示例代码 - 可在此处找到:
http://aws.amazon.com/code/AWIS/402
他们的指示简单说明:
Run php urlinfo.php ACCESS_KEY_ID SECRET_ACCESS_KEY site
但我不知道如何“运行”一个php文件。我的直觉是包含php文件,所以我可以调用它的公共urlInfo函数:
UrlInfo($accessKeyId, $secretAccessKey, $site)
但如果我加入它:
<?php require_once ('urlinfo.php'); ?>
该页面自动生成消息:
Usage: ACCESS_KEY_ID SECRET_ACCESS_KEY site
那么如何从我的索引文件中调用这个php文件并将其传递给它所需的参数呢?
答案 0 :(得分:1)
删除urlinfo.php文件底部的以下代码。
if (count($argv) < 4) {
echo "Usage: $argv[0] ACCESS_KEY_ID SECRET_ACCESS_KEY site\n";
exit(-1);
}
else {
$accessKeyId = $argv[1];
$secretAccessKey = $argv[2];
$site = $argv[3];
}
$urlInfo = new UrlInfo($accessKeyId, $secretAccessKey, $site);
$urlInfo->getUrlInfo();
然后您可以使用以下代码生成您需要的urlinfo。
$urlInfo = new UrlInfo($accessKeyId, $secretAccessKey, $site);
$urlInfo->getUrlInfo();
答案 1 :(得分:1)
假设你有unix命令行:
从命令行输入“which php”,看看你的shell是否知道你的php bin文件的位置。如果您获得路径,请键入该路径以运行该文件,然后输入参数ACCESS_KEY_ID SECRET_ACCESS_KEY site
实施例: / usr / local / bin / php urlinfo.php ACCESS_KEY_ID SECRET_ACCESS_KEY网站
答案 2 :(得分:1)
urlinfo.php脚本旨在通过PHP命令行界面运行,并期望通过cli传递参数。
如果删除以下代码部分:
if (count($argv) < 4) {
echo "Usage: $argv[0] ACCESS_KEY_ID SECRET_ACCESS_KEY site\n";
exit(-1);
}
else {
$accessKeyId = $argv[1];
$secretAccessKey = $argv[2];
$site = $argv[3];
}
然后做:
$accessKeyId = "youkeyid";
$secretAccessKey = "yoursecret";
$site = "yoursite";
include('urlinfo.php');
它将按预期工作。
答案 3 :(得分:0)
运行文件的说明意味着您应该在命令提示符中键入该命令。
示例代码就是一个样本。因此,他们试图让您轻松运行它而不将其放入Web服务器。相反,你可以直接在它上面执行php。
如果要在Web服务器中运行它,则需要重写该示例。