2011-10-26 68 views
0

我正在尝试使用PHP为亚马逊AWS api创建一个签名请求。我不是太熟悉PHP所以这个问题似乎非常明显,所以我很抱歉 -PHP - 如何包含一个php类文件并执行一个函数

Amazon提供的示例代码生成签名要求使用他们的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文件并将它传递给它需要的参数呢?

回答

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'); 

预期它将工作。

0

运行该文件的说明意味着您应该将该命令键入命令提示符。

示例代码只是表示样本。因此,他们试图让您轻松运行它,而无需将其放入Web服务器。相反,你可以直接在它上面执行php。

如果你想在网络服务器上运行它,你需要重写这个例子。

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(); 
+0

所以我想我有点困惑 - 每次我想要访问Web服务时都不需要运行它?如果我在本地主机上运行这个功能,我该如何使用“网站”?我可以在本地主机上运行它吗? – mheavers

1

假设你有UNIX命令行:

类型看“的PHP”在命令行,如果你的shell已经知道了您的php bin文件是。如果你得到一个路径,键入路径来运行该文件后跟参数ACCESS_KEY_ID SECRET_ACCESS_KEY网站

例子: 在/ usr/local/bin目录/ PHP urlinfo.php ACCESS_KEY_ID SECRET_ACCESS_KEY网站


相关问题