t***q 发帖数: 418 | 1 有谁懂 php 的?问个问题。
下面一段程序,print 那个 $formattedresponse 的时候,总是说amazon_access_key
没有 configure之类的, 类似的另外一个程序,写法类似,print $formattedresponse
的时候,就有结果。
还有,我不太懂php 里, variable 是怎么定义的, 定义了$amazon_access_key 后,
我试图在之后print, 但都说该变量没有define. 为什么? 我如果在之前,刚定义好了
的那里print, 仿佛问题更大。为什么?怎么把一开始设定的variable 打印出来呢?
这些 amazon keys 的 configure 到底哪里出错了?
多谢!
接触php 不多,觉得这个语言有点神.
ini_set('memory_limit', '10000M');
class GatherData extends Command
{
private $rtKey = 'xxxxxx';
private $amazon;
private $amazon_access_key = null;
private $amazon_secret_key = null;
private $amazon_associate_tag = null;
print $amazon_access_key;
protected function configure()
{
$this
->setName('api:gatherdata')
->setDescription('Processes a file with title names and
retrieves their XXX details from APIs')
;
}
/**
* setParameters
* An array of keys so we can access our AWS services. This is
configured via the
* parameters.yml file and loaded in console
*
* @param array Parameters
*
* @return null
*/
public function setParameters($params)
{
if (!isset($params['amazon_access_key']) || !isset($params['amazon_
secret_key']) || !isset($params['amazon_associate_tag']))
throw new Exception("Missing AWS parameters. Please configure
your parameters.yml file");
$this->amazon_associate_tag = $params['amazon_associate_tag'];
$this->amazon_secret_key = $params['amazon_secret_key'];
$this->amazon_access_key = $params['amazon_access_key'];
print $amazon_access_key;
}
public function initialize(InputInterface $input, OutputInterface $
output)
{
$conf = new GenericConfiguration();
$conf
->setCountry('com')
->setAccessKey($this->amazon_access_key)
->setSecretKey($this->amazon_secret_key)
->setAssociateTag($this->amazon_associate_tag);
$this->amazon = new ApaiIO($conf);
}
private function getAmazon($title)
{
$search = new Search();
$search->setCategory('XXX');
$search->setKeywords($title);
$formattedResponse = $this->amazon->runOperation($search);
print $formattedResponse; |
r*****n 发帖数: 1285 | 2 你为什么在class里有那个print的一行?是要干什么的?
一般都要把它写在一个函数里,或者在class外面做执行语句。
PHP好像不用专门declare variables.
key
formattedresponse
【在 t***q 的大作中提到】 : 有谁懂 php 的?问个问题。 : 下面一段程序,print 那个 $formattedresponse 的时候,总是说amazon_access_key : 没有 configure之类的, 类似的另外一个程序,写法类似,print $formattedresponse : 的时候,就有结果。 : 还有,我不太懂php 里, variable 是怎么定义的, 定义了$amazon_access_key 后, : 我试图在之后print, 但都说该变量没有define. 为什么? 我如果在之前,刚定义好了 : 的那里print, 仿佛问题更大。为什么?怎么把一开始设定的variable 打印出来呢? : 这些 amazon keys 的 configure 到底哪里出错了? : 多谢! : 接触php 不多,觉得这个语言有点神.
|
t***q 发帖数: 418 | 3 我是想通过打印看 那个 key configure 进去了吗。我好像也懂一般要在class 外面执
行语句。
但是如果在class 里的一个函数,就是这个code 的最后一个程序里打印 $
formattedResponse, 就会跑出东西。我试了这个程序,print $formattedResponse 的
时候,报错说access key 没有configure, 但是我在另一个类似的php code 里,也是
做这个事的,就能打印出来xml file.我不晓得这段程序哪里出错了。为什么 access
key 一直不能configure.
【在 r*****n 的大作中提到】 : 你为什么在class里有那个print的一行?是要干什么的? : 一般都要把它写在一个函数里,或者在class外面做执行语句。 : PHP好像不用专门declare variables. : : key : formattedresponse
|
r*****n 发帖数: 1285 | 4 我学了一点点。
明天我试试你的程序,看结果如何。。
【在 t***q 的大作中提到】 : 我是想通过打印看 那个 key configure 进去了吗。我好像也懂一般要在class 外面执 : 行语句。 : 但是如果在class 里的一个函数,就是这个code 的最后一个程序里打印 $ : formattedResponse, 就会跑出东西。我试了这个程序,print $formattedResponse 的 : 时候,报错说access key 没有configure, 但是我在另一个类似的php code 里,也是 : 做这个事的,就能打印出来xml file.我不晓得这段程序哪里出错了。为什么 access : key 一直不能configure.
|
t***q 发帖数: 418 | 5 程序本身较复杂,有5,6 pieces script , 还有 parameters.yml file. 在一个叫
xampp 的 platform 下运行。你如果想run 单独的php, 试一下一个 platform 叫 atom
. 挺好用的。
https://www.youtube.com/watch?v=QyVnWjZzGVY
【在 r*****n 的大作中提到】 : 我学了一点点。 : 明天我试试你的程序,看结果如何。。
|
t***q 发帖数: 418 | 6 而且你如果装youtube 上说的那个package 必须turn off 防火墙,否则可能装不上。
我的公司电脑的防火墙被强制开着,所以我没能装youtube 上的那个package 装了别的
一个。
atom
【在 t***q 的大作中提到】 : 程序本身较复杂,有5,6 pieces script , 还有 parameters.yml file. 在一个叫 : xampp 的 platform 下运行。你如果想run 单独的php, 试一下一个 platform 叫 atom : . 挺好用的。 : https://www.youtube.com/watch?v=QyVnWjZzGVY
|
p********n 发帖数: 3367 | |
r*****n 发帖数: 1285 | 8 我用你的程序,加上“}”s,
然后运行,第一个出错的就是
Parse error: syntax error, unexpected 'print' (T_PRINT), expecting function
(T_FUNCTION) in .....
把这一行移到class外,放后面,再运行:
Fatal error: Class 'Command' not foubnd in ...
这个可以理解,因为我没有全部的程序。
现在去掉'extends Command',再运行,
没有问题。没有报错。
key
formattedresponse
【在 t***q 的大作中提到】 : 有谁懂 php 的?问个问题。 : 下面一段程序,print 那个 $formattedresponse 的时候,总是说amazon_access_key : 没有 configure之类的, 类似的另外一个程序,写法类似,print $formattedresponse : 的时候,就有结果。 : 还有,我不太懂php 里, variable 是怎么定义的, 定义了$amazon_access_key 后, : 我试图在之后print, 但都说该变量没有define. 为什么? 我如果在之前,刚定义好了 : 的那里print, 仿佛问题更大。为什么?怎么把一开始设定的variable 打印出来呢? : 这些 amazon keys 的 configure 到底哪里出错了? : 多谢! : 接触php 不多,觉得这个语言有点神.
|
t******n 发帖数: 239 | 9 可以打印啊。
print $amazon_****不能直接放在 private ***下面。要print,直接echo $this->
amazon_***就好了。
只有setParameters是public而且独立的,把echo $this->amazo_放在那,就能看到。
创建一个php文件,把你的class拷进去,在class之前加上:
$test_param = array(
'amazon_access_key' => 'tst_print_jdjfljaifejla131',
'amazon_secret_key' => 'tst_o094jljfa',
'amazon_associate_tag' => 'tst_liejiflafe'
);
$test_print = new GatherData();
$test_print->setParameters($test_param);
你运行php test_print.php,或者你有设置apache/php的话,放到DocumentRoot底下,
用浏览器就能看见了。
public function setParameters($params)
{
if (!isset($params['amazon_access_key']) || !isset($params['amazon_
secret_key']) || !isset($params['amazon_associate_tag']))
throw new Exception("Missing AWS parameters. Please configure
your parameters.yml file");
$this->amazon_associate_tag = $params['amazon_associate_tag'];
$this->amazon_secret_key = $params['amazon_secret_key'];
$this->amazon_access_key = $params['amazon_access_key'];
echo $this->amazon_access_key;
} |
R*********4 发帖数: 293 | 10 我楼上的,我想指出您的错误。
其实 echo 与 print 本质是一样的。echo可以打印多个参数
比如: echo '1','2','3'.
其他时候都是一样的。
楼主打印不出,应该溯源看看 print后是否真正有值。 |
|
|
t******n 发帖数: 239 | 11 嗯。您说得对。
[在 Rona8421254 (Rona) 的大作中提到:]
:我楼上的,我想指出您的错误。
:其实 echo 与 print 本质是一样的。echo可以打印多个参数
:比如: echo '1','2','3'.
:其他时候都是一样的。
:楼主打印不出,应该溯源看看 print后是否真正有值。 |
m********8 发帖数: 108 | 12 你贴的只是一部分代码,不是完整的代码,然后也没有贴出出错提示原句,所以没有办
法帮你分析问题。
变量定义部分我看是没问题,你出错估计是由于调用变量的时候有问题。
php是可以当过程语言来使用,也可以当面向对象语言来使,但是切忌混杂。
如果不需要类的派生和重构,不必定义私有属性和方法,否则是自找麻烦。
key
formattedresponse
【在 t***q 的大作中提到】 : 有谁懂 php 的?问个问题。 : 下面一段程序,print 那个 $formattedresponse 的时候,总是说amazon_access_key : 没有 configure之类的, 类似的另外一个程序,写法类似,print $formattedresponse : 的时候,就有结果。 : 还有,我不太懂php 里, variable 是怎么定义的, 定义了$amazon_access_key 后, : 我试图在之后print, 但都说该变量没有define. 为什么? 我如果在之前,刚定义好了 : 的那里print, 仿佛问题更大。为什么?怎么把一开始设定的variable 打印出来呢? : 这些 amazon keys 的 configure 到底哪里出错了? : 多谢! : 接触php 不多,觉得这个语言有点神.
|
t***q 发帖数: 418 | 13 哦,错误在这里, print $formattedResponse 就会有这个错。多谢!
【在 m********8 的大作中提到】 : 你贴的只是一部分代码,不是完整的代码,然后也没有贴出出错提示原句,所以没有办 : 法帮你分析问题。 : 变量定义部分我看是没问题,你出错估计是由于调用变量的时候有问题。 : php是可以当过程语言来使用,也可以当面向对象语言来使,但是切忌混杂。 : 如果不需要类的派生和重构,不必定义私有属性和方法,否则是自找麻烦。 : : key : formattedresponse
|
t***q 发帖数: 418 | |
t***q 发帖数: 418 | 15 错误说 missing client token id, request must contain AWSAccessKeyID or x.509
certificate. ItemSearchErrorrResponse
不晓得是哪里出错了?是说AWSAccessKeyID 没有传输到initialize 那个function 里
吗?
多谢! |