好的我有一个网站,我使用此代码来获取每个搜索股票的股票报价。 <?php echo $_GET['quote'];?>
我要做的是使用以下代码显示RSS新闻数据:
<?php
$rss = new DOMDocument();
$rss->load('http://feeds.finance.yahoo.com/rss/2.0/headline?s=GOOG®ion=US&lang=en-USsto');
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
);
array_push($feed, $item);
}
$limit = 5;
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$description = $feed[$x]['desc'];
$date = date('l F d, Y', strtotime($feed[$x]['date']));
echo '<p><strong><a href="'.$link.'" title="'.$title.'">'.$title.'</a></strong><br />';
echo '<small><em>Posted on '.$date.'</em></small></p>';
echo '<p>'.$description.'</p>';
}
?>
你看到“GOOG”部分了吗?这就是我试图用引号捕获代码<?php echo $_GET['quote'];?>
动态更改它,它会抛出错误!有没有其他方法可以做到这一点?
答案 0 :(得分:3)
如果您的GET值包含合法的股票代码,那么这将有效。
$rss->load('http://feeds.finance.yahoo.com/rss/2.0/headline?s='.$_GET['quote'].'®ion=US&lang=en-USsto');
您已经处于php上下文中,因此不是连接字符串的方法
然而,由于没有检查$ _GET [&#39; quote&#39;]是否已设置或具有任何值,因此这不是一种强有力的处理方式,如果不是,则需要确定要获取的内容设置
<强>更新强>
注意问题中给出的原始网址无效
http://feeds.finance.yahoo.com/rss/2.0/headline?s=GOOG®ion=US&lang=en-USsto
不起作用,但
http://feeds.finance.yahoo.com/rss/2.0/headline?s=GOOG®ion=US&lang=en-US
确实
所以请将您的代码更新为
$rss->load('http://feeds.finance.yahoo.com/rss/2.0/headline?s='.$_GET['quote'].'®ion=US&lang=en-US');