Heim  >  Artikel  >  Backend-Entwicklung  >  简单采集了yahoo的一些数据_PHP教程

简单采集了yahoo的一些数据_PHP教程

WBOY
WBOYOriginal
2016-07-21 15:57:48973Durchsuche

以前在公司就写过类似的东西,这次是帮以前的上司写了一个简单的采集程序。

    很简单的。。汗。没什么技术含量的。
    数据来源:http://cn.finance.yahoo.co...
    演示地址:http://traffic02.100steps....

    (修改了下,增加了数据缓存功能。。汗,没有使用lite_cache了,自己写了个最简单的那种。。)

复制代码 代码如下:

 
set_time_limit(0); 

$max_time=3600; 
$cache_file='cache_yahoo.txt'; 

$nowtime=time(); 
if(!file_exists($cache_file)){ 
    $filetime=0; 
}else{ 
    $filetime=filemtime($cache_file); 


if($filetime+$max_time//更新 
    ob_start(); 
function get_yahoo_info($url){ 
    $content=file_get_contents($url); 

    $pattern='| (.*) \((.*)\)  (.*) |U'; 
    preg_match_all($pattern,$content,$out); 
    $info['company_name']=$out[1][0]; 
    $info['company_stock']=$out[2][0]; 

    $pattern='| 最近交易价: (.*)|U'; 
    preg_match_all($pattern,$content,$out); 
    $info['stock_price']=$out[1][0]; 

    $pattern='|涨跌: (.*)|U'; 
    preg_match_all($pattern,$content,$out); 
    $info['stock_upordown']=$out[1][0]; 

    $pattern='|市值: (.*)|U'; 
    preg_match_all($pattern,$content,$out); 
    $info['stock_value']=$out[1][0];     

    return $info; 

$urls=explode(',',file_get_contents('url.txt')); 
$i=0; 
$matchs=array(); 
foreach($urls as $url){ 
    $rs=get_yahoo_info($url); 
    if(!empty($rs)){ 
        $matchs[$i]=$rs; 
        $i++; 
        $rs=''; 
    } 


//print_r(get_yahoo_info('http://cn.finance.yahoo.com/q?s=000063.SZ')); 
?> 
 
   
     
     
     
     
     
     
   
    
  $i=1; 
foreach($matchs as $match){ 
  ?> 
   
     
     
     
     
     
     
   
    
  $i++; 
  }?> 
 
公司名称
股票代号
股票价格
股票涨幅
市值
=$i?>
=$match['company_name']?>
=$match['company_stock']?>
=$match['stock_price']?>
=$match['stock_upordown']?>
=$match['stock_value']?>
 
  
    $content=ob_get_clean(); 
    $fp=fopen($cache_file,'w'); 
    if(!$fp)echo '打开文件失败'; 
    if (flock($fp, LOCK_EX)) { // 进行排它型锁定 
        if(!fwrite($fp, $content))echo '文件写入失败'; 
        flock($fp, LOCK_UN); // 释放锁定 
    } else { 
        //echo "Couldn't lock the file !"; 
        if(!fwrite($fp, $content))echo '文件写入失败'; 
    } 
    fclose($fp); 
    //echo 'cache time:'.time(); 
    echo $content; 
}else{ 
    //echo 'cache!'; 
    echo file_get_contents($cache_file); 

?> 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/317727.htmlTechArticle以前在公司就写过类似的东西,这次是帮以前的上司写了一个简单的采集程序。 很简单的。。汗。没什么技术含量的。 数据来源:http://c...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn