【发布时间】:2014-05-21 23:38:05
【问题描述】:
我正在编写一个程序来自动从 url 下载数据。数据在 csv 中,我正在尝试将其转换为可用信息。下载部分工作正常,但是,我使用 var_export 将数据转换为数组,然后从数组中收集数据。问题是没有从数组中获取数据,我不知道为什么。提前致谢。
<?php ///without data harvesting
$loop = 1;
while ($loop < 401)
{
///data file harvesting csv
$symbol = array("A","AA","AAN","AAP","AAT","AAV","AB","ABB","ABBV","ABC","ABEV","ABG","ABM","ABR","ABR-A","ABR-B","ABT","ABW-B","ABX","ACC","ACCO","ACE","ACG","ACH","ACI","ACM","ACMP","ACN","ACO","ACP","ACRE","ACT","ACW","ADC","ADM","ADS","ADT","ADX","AEB","AEC","AED","AEE","AEF","AEG","AEH","AEK","AEL","AEM","AEO","AEP","AER","AES","AES-C","AET","AEV","AF","AF-C","AFA","AFB","AFC","AFG","AFL","AFM","AFQ","AFSD","AFT","AFW","AG","AGC","AGCO","AGD","AGI","AGM","AGM-A","AGM.A","AGN","AGO","AGO-B","AGO-E","AGO-F","AGRO","AGU","AGX","AH","AHC","AHH","AHL","AHL-A","AHL-B","AHL-C","AHP","AHS","AHT","AHT-A","AHT-D","AHT-E","AI","AIB","AIF","AIG","AIG.W","AIN","AIR","AIT","AIV","AIV-Z","AIW","AIY","AIZ","AJG","AKO.A","AKO.B","AKP","AKR","AKS","AL","ALB","ALDW","ALE","ALEX","ALG","ALJ","ALK","ALL","ALL-A","ALL-B","ALL-C","ALLE","ALP-N","ALP-O","ALP-P","ALR","ALR-B","ALSN","ALU","ALV","ALX","AMC","AMD","AME","AMG","AMH","AMH-A","AMID","AMP","AMP-A","AMRC","AMRE","AMT","AMT-A","AMTD","AMTG","AMX","AN","ANF","ANFI","ANH","ANH-A","ANH-B","ANN","ANR","ANW","AOD","AOI","AOL","AON","AOS","AP","APA","APAM","APB","APC","APD","APF","APH","APL","APO","APU","AR","ARC","ARCO","ARCX","ARDC","ARE","ARE-E","ARG","ARH-C","ARI","ARI-A","ARK","ARL","ARMF","ARMK","ARN","ARO","ARP","ARPI","ARR","ARR-A","ARR-B");
$symboluse = $symbol[$loop];
$historical_data_1 = file_get_contents('http://ichart.finance.yahoo.com/table.csv?s='.$symboluse.'&a=05&b=06&c=2013&d=06&e=05&f=2014&g=d&ignore=.csv');
$dividend_data_1 = file_get_contents('http://ichart.finance.yahoo.com/table.csv?s='.$symboluse.'&a=05&b=06&c=2013&d=06&e=05&f=2014&g=v&ignore=.csv');
$general_data_1 = file_get_contents('http://finance.yahoo.com/d/quotes.csv?s='.$symboluse.'&f=e7e8rr5');
///converting csv to usable data
///historical
$h_array =
$historical_array = array (1447, explode(',', $historical_data_1), true );
$dividend_array = array ( explode(',', $dividend_data_1, true) );
$general_array = array ( explode(',', $general_data_1, true) );
var_dump($historical_array);
var_dump($dividend_array);
var_dump($general_array);
///making it usable data
$symbol_1 = $symboluse;
$price = intval($historical_array[11]); /// have to call the array inside an array because the data doesn't collect
$dividend1 = intval($dividend_array[2]);
$dividend2 = intval($dividend_array[3]);
$dividend3 = intval($dividend_array[4]);
$dividend4 = intval($dividend_array[5]);
$PE_Ratio = intval($general_array[2]);
$EPS = intval($general_array[0]);
$EPS_next_year = intval($general_array[1]);
$PEG_Ratio = intval($general_array[3]);
echo $symbol_1."\n";
echo $price."\n";
echo $dividend1."\n";
echo $dividend2."\n";
echo $dividend3."\n";
echo $dividend4."\n";
echo $PE_Ratio."\n";
echo $EPS."\n";
echo $EPS_next_year."\n";
echo $PEG_Ratio."\n";
$loop++;
}
?>
【问题讨论】:
-
var_export 的部分在哪里?如果你在这里也放了一些 var_dump,那么我们可以将它们与你的代码进行比较。
-
fgetcsv()或str_getcsv()很可能会更容易。也许发布一个文件数据的例子和你想要的输出。