从数组PHP打印min和max时出错

时间:2014-05-15 01:33:33

标签: php printing max min

我有一个从游戏网站上获取xml api的cron。 然后,Cron将数据分开并将信息放入数据库的适当部分。该代码是由其他人在2010年或2011年编写的。我一直试图为旧脚本创造新的生命,因为orignal writer没有使代码保持最新。当我运行我的cron时,我收到以下错误。

KEY1

警告:min()[function.min]:数组必须在第95行的/home3/banumren/public_html/ratter/ratter/cron.php中包含至少一个元素

警告:max()[function.max]:数组必须在第95行的/home3/banumren/public_html/ratter/ratter/cron.php中包含至少一个元素

[0](0%) - 0/0(beforeRefID :) * [cachedUntil = 2014-05-15 01:19:46(time-api-taken:2014-05-15 01:04:46])]

  • wallet.dates =(to)

有问题的一行:

    <br> * wallet.dates = ( ".$dates1[ min($dates) ]." to ".$dates1[ max($dates) ]." ) \n<br>\n

整段代码如下。

    }

$cachedUntil = (string)$wallet_xml->cachedUntil;
$currentTime = (string)$wallet_xml->currentTime;

print "<b>".$corpName." [ $corpId ] ($corpTax %) "." - $add_wallet_rows / $cnt  (beforeRefID: {$beforeRefID}) </b>
<i> <br> * [cachedUntil={$cachedUntil} (time-api-taken: {$currentTime}]) ]  
    <br> * wallet.dates = ( ".$dates1[ min($dates) ]." to ".$dates1[ max($dates) ]." ) \n<br>\n
</i>    ";

$ret = array( 
    'min' => null, //@min( $RefIDs ) , 
    'max' => null, //@max( $RefIDs ) ,  
    'cnt' => count($RefIDs) , 
    'currentTime' => (string)$wallet_xml->currentTime , 
    'cachedUntil' => $cachedUntil ,
);

if( $ret['cnt'] ) {
    $ret['min'] = min( $RefIDs );
    $ret['max'] = max( $RefIDs );
}

return $ret;

}

有关可能导致错误的原因的任何想法?似乎cron正在拉动api,因为它具有缓存的时间值,直到当前时间。代码在2011年没有问题,我是PHP的新手,不知道在过去几年中是否有任何更改。

这可能是罪魁祸首吗?

    $cnt = 0;
$RefIDs = null;
$dates = $dates1 = array();
foreach( (array)@$xml['row'] as $row ) {
    $cnt++;

删除(数组),不再收到错误。现在进入另一条线。在第180行的第180行,所以希望很快就会有bug。

第180行的错误是函数php缺少的函数。 [14-May-2014 21:33:50] PHP致命错误:调用未定义的函数clear_directory_files_older() 通过将以下代码添加到functions.php

来修复错误
function clear_directory_files_older($directory,$older_sec,$ext='*') {
$glob = $directory."*.{$ext}";
$removed = 0;

$array = glob( $glob );
foreach( $array as $file ) {
    $filemtime = filemtime($file);
    if( $filemtime < ( time()-$older_sec ) ) {
//      print "\n<br>OLD => ".( $file );    print "<br>".date('r',$filemtime);
        @unlink( $file );
        $removed++;
    } else {
//      print "\n<br>NEW => ".( $file );
    }
}

return $removed;

在修复新错误180时,第95行返回原始错误

经过更多搜索后,我走进缓存文件夹浏览一下。似乎错误的问题是网站上的API发生了很大变化,我没有提取任何有效数据。更新到API地址后,cron现在正在提取数据并正确更新缓存文件。错误不再发生。

0 个答案:

没有答案