从远程文件加载CSV

时间:2015-09-30 08:18:49

标签: php arrays csv

我正在用CSV编写以下代码来获取库存数据,当我下载字符串时,它会按以下方式拆分

<COMPANY NAME>,<STOCK PRICE>,<STOCK CHANGE>
<COMPANY2 NAME>,<STOCK PRICE2>,<STOCK CHANGE2>

我试图使用PHP函数explode使用/ n字符拆分数组。然而,这并没有恰当地分裂它。这是我的代码:

public function getQuotes()
{        
    $result = array();      
    $format = $this->format;
    $stockString = "";

    foreach ($this->stocks as $stock)
    { 
        $stockString = $stockString . $stock . "+";
    } 
    //Remove the last "+"
    $stockString = substr($stockString,0,strlen($stockString)-1);
    $s = file_get_contents("http://finance.yahoo.com/d/quotes.csv?s=". $stockString . "&f=" . $format . "&e=.csv");

    //The splitting is to be done here.

    }
}

提前谢谢

1 个答案:

答案 0 :(得分:0)

使用file功能代替file_get_contents - 它将为您分割内容,正如php manual所说:

  

返回数组中的文件。数组的每个元素对应于   文件中的一行,新行仍然附加。失败后,   file()返回FALSE。

然后,您可以对数组的每个元素使用str_getcsv来获取字段值。

public function getQuotes()
{        
    $result = array();      
    $format = $this->format;
    $stockString = "";

    foreach ($this->stocks as $stock)
    { 
        $stockString = $stockString . $stock . "+";
    } 
    //Remove the last "+"
    $stockString = substr($stockString,0,strlen($stockString)-1);
    $s = file("http://finance.yahoo.com/d/quotes.csv?s=". $stockString . "&f=" . $format . "&e=.csv");

    foreach($s as $line) {
        $values = str_getcsv($line);
    }
}