php - 直接将csv文件下载到内存中,最好不要使用cURL

时间:2012-08-10 07:10:29

标签: php parsing curl csv

这相当于问题:Download CSV directly into Python CSV parser但在php中。基本上我正在寻找一个库提供的接口,能够用几行代码处理我用python做的事情:

h = httplib2.Http('.cache')
url = 'http://financials.morningstar.com/ajax/ReportProcess4CSV.html?t=' + code + '&region=AUS&culture=en_us&reportType='+ report + '&period=12&dataType=A&order=asc&columnYear=5&rounding=1&view=raw&productCode=usa&denominatorView=raw&number=1'
headers, data = h.request(url)
return data

我需要下载并解析csv文件,但我想避免使用cURL及其低级接口。有什么建议吗?

3 个答案:

答案 0 :(得分:4)

不完全是3行:

function getURL($url){
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $ret = curl_exec($ch);
    curl_close($ch);
    return $ret;
}

或者我猜你可以使用file_get_contents,如果你真的不喜欢cURL ......

file_get_contents($url);

另外,请查看str_getcsv(),将上述函数中的字符串转换为包含CSV文件数据的数组。

答案 1 :(得分:4)

如果已启用fopen包装,则可以使用file_get_contents将文件加载到变量中。您可以使用str_getcsv解析结果。

$data = str_getcsv(file_get_contents('http://example.com/data/my.csv'));

如果您需要设置特定标题或使用其他分隔符,请参阅手册。

答案 2 :(得分:0)

您可以使用以下内容:

$content = file_get_contents($url);
应启用

fopen wrappers