我使用PHP脚本将Yahoo财经报价转换为HTML网页。但是,经过一年的完美工作后,网页突然停止显示数据,并且根本没有代码更改。这是我的代码:
<table>
<tr>
<?php $fp = fopen ("http://finance.yahoo.com/d/quotes.csv?s=VIP&f=l1c1p2rj1&e=.csv","r");
$data = fgetcsv ($fp, 1000, ",") ?>
<td>Vimpel-Communications</td>
<td><?php echo $data[0] ?></td>
<td><?php echo $data[1] ?></td>
<td><?php echo $data[2] ?></td>
<td><?php echo $data[3] ?></td>
<td><?php echo $data[4] ?></td>
<td><?php echo $data[5] ?></td>
</tr>
</table>
以下是实际网站的测试页:http://bricadr.com/test.php 任何人都可以帮助或有人知道发生了什么,或者我如何解决这个问题?此外,如果有人有服务器,你能看到这个代码是否适用于您的服务器?也许我的托管公司关闭了一些允许以前工作的功能。
提前谢谢!
布赖恩
答案 0 :(得分:5)
更新:在我的服务器上测试过它。未解析时,HTML中的注释是301重定向的通知。新页面为“http://download.finance.yahoo.com/d/quotes.csv?s=VIP&f=l1c1p2rj1&e=.csv”,只需更改您的网址即可。如果您想使用它,我已经更新了以下代码。
无论如何,这是使用cURL的代码的一个有点有效的版本,因为它是much faster而不是fopen。我也使用了爆炸,因为由于某种原因,cvs功能在我的服务器上无效。
$curl=curl_init();
curl_setopt ($curl,CURLOPT_URL,"http://download.finance.yahoo.com/d/quotes.csv?s=VIP&f=l1c1p2rj1&e=.csv");
curl_setopt ($curl,CURLOPT_HEADER,0);
ob_start();
curl_exec ($curl);
curl_close ($curl);
$data=ob_get_clean();
$data=explode(",",$data);
$data=str_replace('"','',$data);
foreach ($data as $results)
echo "<td>$results</td>";
工作here。