-1

我正在使用 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 任何人都可以帮助或知道发生了什么,或者我该如何解决这个问题?另外,如果有人有服务器,你能看看这段代码在你的服务器上是否有效吗?也许我的托管公司关闭了一些允许它以前工作的功能。

先感谢您!

布赖恩

4

1 回答 1

5

更新:在我的服务器上进行了测试。未解析时,HTML 中的注释是 301 重定向通知。新页面是“ http://download.finance.yahoo.com/d/quotes.csv?s=VIP&f=l1c1p2rj1&e=.csv ”,只需更改您的 URL。如果您想使用它,我已经更新了下面的代码。

无论如何,这是您的代码的一个小高效版本,使用 cURL,因为它比 fopen快得多。我还使用了explode,因为出于某种原因,我的服务器上的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>";

在这里工作。

于 2012-05-18T05:40:54.913 回答