PHP代码的下面的代码是什么意思呢?请大家看看

<?phpfunctionchecklaires($key){if(!$key){returnfalse;}$mykey="phptp";$key=strtoupper(... <?php
function checklaires( $key )
{
if ( !$key )
{
return false;
}
$mykey = "phptp";
$key = strtoupper( $key );
$de = explode( "-", $key );
$px = array_pop( $de );
$a = array( );
$s = "";
$j = 0;
for ( ; $j < count( $de ); ++$j )
{
$s .= substr( md5( $de[$j] ), 0, 5 );
}
$s = strtoupper( $s );
if ( $px == strtoupper( substr( md5( $s.$mykey ), 0, 5 ) ) )
{
return true;
}
else
{
return false;
}
}

function get_laires_time( $key )
{
if ( !$key )
{
return false;
}
$key = strtoupper( $key );
$a = explode( "-", $key );
$y = $y1 = $y2 = $m = $d = 0;
$fd = 10;
$fz = 10;
$r['y'] = intval( substr( substr( md5( substr( substr( $a[0], 1, 2 ), 0, 1 ) ), $fd, $fz ), substr( substr( $a[0], 1, 2 ), 1, 1 ), 2 ) ) % 40;
$r['y'] .= intval( substr( substr( md5( substr( substr( $a[1], 2, 2 ), 0, 1 ) ), $fd, $fz ), substr( substr( $a[1], 2, 2 ), 1, 1 ), 2 ) ) % 40;
$r['m'] = intval( substr( substr( md5( substr( substr( $a[2], 1, 2 ), 0, 1 ) ), $fd, $fz ), substr( substr( $a[2], 1, 2 ), 1, 1 ), 2 ) ) % 40;
$r['d'] = intval( substr( substr( md5( substr( substr( $a[3], 2, 2 ), 0, 1 ) ), $fd, $fz ), substr( substr( $a[3], 2, 2 ), 1, 1 ), 2 ) ) % 40;
$r['c'] = substr( $a[0], 4, 1 );
return $r;
}

function randk( $a )
{
return $a[rand( 0, sizeof( $a ) - 1 )];
}

function auto_laires( $msg = true )
{
global $core;
$la = true;
if ( !$core->CONFIG['serial_number'] )
{
$msg ? message( "the_serial_number_not_exist" ) : ( $la = false );
}
if ( !checklaires( $core->CONFIG['serial_number'] ) )
{
$msg ? message( "the_serial_number_is_invalid" ) : ( $la = false );
}
$t = get_laires_time( $core->CONFIG['serial_number'] );
if ( 0 < $t['y'] || !is_numeric( $t['c'] ) )
{
if ( is_numeric( $t['c'] ) && intval( $t['y'].$t['m'].$t['d'] ) < date( "ymd" ) )
{
$msg ? message( "the_serial_number_had_expired" ) : ( $la = false );
}
else if ( !is_numeric( $t['c'] ) )
{
$s = $core->CACHE->read( "", "core", "laires" );
$laires = "";
if ( $s )
{
list( $od, $laires ) = explode( "|", @base64_decode( $s ) );
if ( $laires == $core->CONFIG['serial_number'] && ( $t['y'] * 365 + $t['m'] * 90 + $t['d'] ) * 86400 < P8_TIME - $od )
{
$msg ? message( "the_serial_number_is_invalid" ) : ( $la = false );
}
}
if ( !$s || $laires != $core->CONFIG['serial_number'] )
{
$core->CACHE->write( "", "core", "laires", base64_encode( P8_TIME."|".$core->CONFIG['serial_number'] ) );
}
}
}
$msg ? "" : define( "LAIRES", $la );
}

function _laires( )
{
auto_laires( false );
}

if ( !defined( "PHPtp_PATH" ) )
{
exit( );
}
?>
===============================================
展开
 我来答
a348876412
2011-12-22 · TA获得超过136个赞
知道小有建树答主
回答量:292
采纳率:0%
帮助的人:237万
展开全部
checklaires():貌似是判断传进来的$key是否为"xx-xxx-12467",xxx为任意字符,只要最后为12467就返回true;
get_laires_time():返回某种加密规则后的数组,类似:Array ( [y] => 160 [m] => 0 [d] => 11 [c] => 5 );
randk():返回一个数组中的随机元素;
auto_laires:判断一个序列号相关的信息:是否过期…之类的。
这些代码应该是验证序列号相关的。
追问
是怎么判断到“最后为12467就返回true;”的呢?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式