我有一个从游戏网站上获取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])]
有问题的一行:
<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现在正在提取数据并正确更新缓存文件。错误不再发生。