获取远程数据本地缓存到PHP数组

<?php 

/* 本地缓存文件名称 */
$tempfile = "sms.php";
$smsdata = array();
$getTime = 3 ;


/**
 * 文件是否需要读取远程
 *
 * @return boolean 获取远程数据文件
 */
function getFileReader() {
    
    /* 引入全局变量 */
    global $tempfile,$smsdata,$getTime;    
    
    try {
        
        if( time() - filemtime($tempfile) < $getTime ) {
            /* 本地 */
            $smsdata = include $tempfile;
            
        } else {
            /* 远程 */
            if( getHttpFileGyArray() === false ) $smsdata = include $tempfile;
        }
        
        
    } catch (FtpException $e) {
        /* 远程 */
        if( getHttpFileGyArray() === false ) $smsdata = array();    
    }
}


/**
 * 获取HTTP请求远程数据文件
 *
 * @param string $url 地址
 *
 * @return boolean/array 获取远程数据文件
 */
function getHttpFileGyArray( $url ) {
    
    /* 引入全局变量 */
    global $tempfile,$smsdata;
    
    try {

        /* 读取数据 */
        $text = @file_get_contents($url);
        $text = explode('@',$text);
        
        /* 生成PHP数组内容 */
        foreach( $text as $key => $row ) {
            $at = explode('|',$row);        
            $smsdata[$at[0]]['dx'] = $at[1];
        }
        
        /* 缓存到本地 */
        $content  = "<?php\n\n return ".var_export($smsdata,  true).";\n";    
        file_put_contents($tempfile, $content);
        
    } catch (FtpException $e) {
        $smsdata = array();
        return false;
    }
    return true;
 }
 
 
 getFileReader(); 
 print_r($smsdata);
  
?>

转载于:https://my.oschina.net/tiwer/blog/199856

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值