2016-02-16 130 views
-1

我正在使用的代码从本网站内:http://blog.chapagain.com.np/php-how-to-get-stock-quote-data-from-yahoo-finance-complete-code-and-tutorial/PHP数组变量的链接

$stock = "GOOG"; 
$objYahooStock->addFormat("sl1"); 
$objYahooStock->addStock($stock); 

foreach($objYahooStock->getQuotes() as $code => $stock) { 
    $stock = $stock[1]; 
} 

但是,我不能使用变量$stock链接里面。如果我尝试在页面上显示它(echo $stock;),它正在工作。我能够看到股票价格,但我无法在链接中使用该变量,请参阅下文。

http://example.com/example?text=' . $stock . '%20USD 

我也尝试将股票价格保存到一个变量没有foreach循环。

$stock = "GOOG"; 
$price = $objYahooStock->getQuotes(); 
$stock = $price[$stock][1]; 

同样的结果在这里。我可以显示价格,但我不能在链接中使用它。

有没有人看到这个问题?提前致谢。

+1

请张贴你的'a'链接。 –

+0

我使用JS'window.open(“http://example.com/example?text='。$ stock。'%20USD”);'因为我需要把它放在一个弹出窗口中。变量'$ stock'在我的其他例子中工作。我也通过谷歌财经“隐藏的API”获取股票价格,它正在工作。所以这个链接不应该成为问题,即使它看起来如此。 – Treps

+1

显示代码出错的完整代码。 – Epodax

回答

1

基本上你需要分析输出。尝试var_dump并查看结果。

你的情况$stock在字符串中有一些字符。 尝试以下解决方案snl1d1t1cv格式:

$objYahooStock = new YahooStock; 
$objYahooStock->addFormat("snl1d1t1cv"); 
$objYahooStock->addStock("GOOG"); 

$price = $objYahooStock->getQuotes(); 
$stock = "GOOG"; 
$stock = $price[$stock][1]; 

var_dump($price); 
echo '<script>window.open("http://example.com/example?text=' . str_replace('"','',$stock) . '%20USD");</script>' 

该解决方案在我的机器

编辑打开一个新窗口: 的格式SL1下面的解决方案将工作:

$objYahooStock = new YahooStock; 

$objYahooStock->addFormat("sl1"); 

$objYahooStock->addStock("GOOG"); 


$price = $objYahooStock->getQuotes(); 
$stock = "GOOG"; 
echo $stock = $price[$stock][1]; 

var_dump($price); 
echo '<script>window.open("http://example.com/example?text=' . str_replace('\n','',trim($stock)) . '%20USD");</script>' 
+0

非常感谢'str_replace('\ n','',trim($ stock))'是解决方案。 – Treps

+0

我用'$ stock = str_replace('\ n',''trim($ price [$ stock] [1]));'解决了它。因为我在其他地方使用相同的结构,所以不能在链接中更改变量'$ stock'。 – Treps

1

没有看到你的完整代码,很难看到你在做什么,但http://example.com/example?text=' . $stock . '%20USD看起来好像这是HTML而不是PHP?

根据你的方法...

PHP:echo 'http://example.com/example?text=' . $stock . '%20USD';

;或

HTML:http://example.com/example?text=<?=$stock?>%20USD

编辑:我看你是使用JavaScript从您的评论,所以使用上面的HTML例子。