[N久以前发布的文章]php 获取yahoo股票csv数据并封闭成为接口输出json数据

思路

先从yahoo接口获取数据,再定义接口,转化成为json输出。只供卡通网(kt5.cn)使用

stock.php 接口处理代码

<?php
header("Content-Type: application:json;charset=utf-8");
header('Access-Control-Allow-Origin:http://www.kt5.cn');  // 只允许kt5.cn这域名进行跨域get访问
header('Access-Control-Allow-Methods:GET');  
header('Access-Control-Allow-Headers:x-requested-with,content-type');  

$StockName=$_REQUEST['stockname'];
$StartDateArr=explode("-",$_REQUEST['startdate']);
$EndDateArr=explode("-",$_REQUEST['enddate']);

$StartMonth=$StartDateArr[1] - 1;
$StartDay=$StartDateArr[2];
$StartYear=$StartDateArr[0];
$EndMonth=$EndDateArr[1] - 1;
$EndDay=$EndDateArr[2];
$EndYear=$EndDateArr[0];
$StockAPI = 'http://table.finance.yahoo.com/table.csv?s='.$StockName.'&f='.$EndYear.'&d='.$EndMonth.'&e='.$EndDay.'&c='.$StartYear.'&a='.$StartMonth.'&b='.$StartDay.'&g=d&ignore=.csv'; // 定义stock api的url
$StockData = json_encode(csv_in_array($StockAPI,",","",true)); // 定义值为读取到的Stock信息
// echo '<pre>'; // 输出原文本格式
echo $StockData; // 输出获取到的stock信息文本
// echo "</pre>"; // 输出原文本格式

function csv_in_array($url,$delm=",",$encl="",$head=true) { 
    
    $csvxrow = file($url);   // ---- csv rows to array ----
    
    $csvxrow[0] = chop($csvxrow[0]); 
    $csvxrow[0] = str_replace($encl,'',$csvxrow[0]); 
    $keydata = explode($delm,$csvxrow[0]); 
    $keynumb = count($keydata); 
    
    if ($head === true) { 
    $anzdata = count($csvxrow); 
    $z=0; 
    for($x=1; $x<$anzdata; $x++) { 
        $csvxrow[$x] = chop($csvxrow[$x]); 
        $csvxrow[$x] = str_replace($encl,'',$csvxrow[$x]); 
        $csv_data[$x] = explode($delm,$csvxrow[$x]); 
        $i=0; 
        foreach($keydata as $key) { 
            $out[$z][$key] = $csv_data[$x][$i]; 
            $i++;
            }    
        $z++;
        }
    }
    else { 
        $i=0;
        foreach($csvxrow as $item) { 
            $item = chop($item); 
            $item = str_replace($encl,'',$item); 
            $csv_data = explode($delm,$item); 
            for ($y=0; $y<$keynumb; $y++) { 
               $out[$i][$y] = $csv_data[$y]; 
            }
        $i++;
        }
    }

return $out; 
}


?>

 

posted @ 2019-08-28 10:55  Fast Mover  阅读(338)  评论(0编辑  收藏  举报
友情链接: A4纸尺寸 | 卡通头像 | +申请友情链接