首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php中读取在线.csv文件有问题吗?

在php中读取在线.csv文件有问题吗?
EN

Stack Overflow用户
提问于 2013-07-08 03:33:11
回答 2查看 1.9K关注 0票数 1

雅虎有一个金融api,允许个人获得当前和历史股票信息。他们有多种方法来检索这些信息,一种是使用雅虎查询语言,另一种是直接下载/读取他们的.csv (逗号分隔文件)文件。

我发现了一个非常有用的脚本,可以通过php读取csv文件。然而,我似乎只得到了csv文件的前9000个字符。我试着调整文件大小,但都无济于事,我想知道我到底在哪里被封顶,以及是否有办法绕过这个问题。

是php在封顶我,还是雅虎在封顶我(似乎不太可能),或者仅仅是一个人只能通过http协议传递这么多信息?我欢迎任何有见地的意见,也非常感谢任何有建设性的批评。我的代码如下:

代码语言:javascript
复制
<?php

// Setup Variables
$requestUrl = "http://ichart.yahoo.com/table.csv?s=GOOG&a=0&b=1&c=2000&d=0&e=31";

// Pull data (download CSV as file)
$filesize=1000000;
$handle = fopen($requestUrl, "r");
$raw = fread($handle, $filesize);
fclose($handle);

echo $raw; //error checking, turns out the $raw is only about 8000 characters long


// Split results, trim way the extra line break at the end
$quotes = explode("\n",trim($raw));


foreach($quotes as $quoteraw) {
$quoteraw = str_replace(", I", " I", $quoteraw);
$quote = explode(",", $quoteraw);

echo $quote[0]."
"; // output the first element of the array, the Company Name
}

?>

编辑:将对所有有建设性的建议进行投票,非常感谢:))。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-08 03:39:07

代码语言:javascript
复制
$CSV = file_get_contents('http://ichart.yahoo.com/table.csv?s=GOOG&a=0&b=1&c=2000&d=0&e=31');
var_dump($CSV);

^试试这件衣服的尺寸。

你只能fread一次。很自然,你不会了解全部内容。它需要一直读到feof()。您不能期望TCP/IP提供您期望的缓冲区大小。您说fread()最多包含#####字节,但是您可以在一次攻击中得到服务器希望(/ can)发送的任意数量的结果。

PS:使用cURL就可以了!但是file_get_contents应该在这里做。

票数 1
EN

Stack Overflow用户

发布于 2013-07-08 03:48:46

因为它是csv文件,所以改用fgetcsv

来自php.net的示例代码:

代码语言:javascript
复制
<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
}
?>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17515546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档