谁能给我解释一下下面的代码(200),答完全者给200分!!

xxrl 2003-08-19 03:53:32
<?php

include("../../includes/config.php");
$ver_id=&&&ver_id&&&;
$userid=&&&userid&&&;
$mod=&&&mod&&&;
$exptime=&&&exptime&&&;
///////////////////////////////////////
$date = getdate();
$yy = $date['year'];
$dd= $date['mday'];
$mm= $date['mon'];
if($mm<10){
$mm="0".$mm;
}
if($dd<10){
$dd="0".$dd;
}
$nowtime=$yy.$mm.$dd;

////////////////////////////////////////
if($nowtime>$exptime && $LOOK!="ok"){
header("location:../../exp.htm");
}
if($file==""){
$file="index.php3";
}
if(isset($REF_PAGE)){
$refpage=$REF_PAGE;
$direct="N";
}else{
$direct="Y";
}
$opendir="$baseurl/mod/$mod/";
$openfile=$opendir.$file;
$openfile=$openfile."?kdir=$kdir&nowdir=$nowdir&userid=$userid&id=$id&detail=$detail";
if($QUERY_STRING==""){
$filestring="file=index.php3.htm";
}else{
$filestring=$QUERY_STRING.".htm";
}
setcookie("REF_PAGE",$filestring);
$kk=3;
if(file_exists($filestring)){
$fx=fopen($filestring,"r");
$pp=fgets($fx,100);
fclose($fx);

if(trim($pp)=="<!-- $ver_id -->"){
include($filestring);

}else{
$kk=1;
}
}else{
if($filestring=="file=index.php3.htm"){
$kk=1;
}elseif($direct=="Y"){
$kk=0;
}else{
if(file_exists($refpage)){
$ffp=fopen($refpage,"r");
$fcon=fread($ffp,120000);
if(strstr($fcon,$QUERY_STRING.">")){
$kk=1;
}else{
$kk=0;
}
fclose($ffp);
}else{
$kk=0;
}

}
}

if($kk==0){
$fd=fopen($openfile,"r");
$con = fread($fd,120000);
$con=str_replace("images/","$opendir/images/",$con);
$con=str_replace("<?","",$con);
$con=str_replace("<%","",$con);
$con=str_replace("language=php","",$con);
$con=str_replace("language='php'","",$con);
$con=str_replace('language="php"','',$con);
fclose($fd);
echo "$con";
}


if($kk==1){
$fd=fopen($openfile,"r");
$con = fread($fd,120000);
$con=str_replace("images/","$opendir/images/",$con);
fclose($fd);
$con=str_replace("<?","",$con);
$con=str_replace("<%","",$con);
$con=str_replace("language=php","",$con);
$con=str_replace("language='php'","",$con);
$con=str_replace('language="php"','',$con);
echo "$con";
$fp=fopen($filestring,"w");
fwrite($fp,"<!-- $ver_id -->\n",100);
$con=str_replace("\t","",$con);
$con=str_replace("\r","",$con);
$con = ereg_replace(">([ ]+)<", "><", $con);
$con = ereg_replace("\n([ ]+)<", "\n<", $con);
$con = ereg_replace("([\n]+)", "\n", $con);
fwrite($fp,$con,strlen($con));
fclose($fp);
chmod($filestring,0666);
}
?>
...全文
97 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
inberkung 2003-08-19
  • 打赏
  • 举报
回复
让我慢慢看看....
ustb 2003-08-19
  • 打赏
  • 举报
回复
<?php

include("../../includes/config.php");
$ver_id=&&&ver_id&&&;
$userid=&&&userid&&&;
$mod=&&&mod&&&;
$exptime=&&&exptime&&&;
///////////////////////////////////////
$date = getdate();
$yy = $date['year'];
$dd= $date['mday'];
$mm= $date['mon'];
if($mm<10){
$mm="0".$mm;
}
if($dd<10){
$dd="0".$dd;
}
$nowtime=$yy.$mm.$dd;

////////////////////////////////////////

//上面不用说了

//可能是如果超时,并且$LOOK不为ok的时候跳转到exp.htm页
if($nowtime>$exptime && $LOOK!="ok"){
header("location:../../exp.htm");
}

//如果文件不存在,则将$file赋一个值
if($file==""){
$file="index.php3";
}

//如果设置了$REF_PAGE,就将$refpage,$direct赋值
if(isset($REF_PAGE)){
$refpage=$REF_PAGE;
$direct="N";
}else{
$direct="Y";
}

//打开文件
$opendir="$baseurl/mod/$mod/";
$openfile=$opendir.$file;
$openfile=$openfile."?kdir=$kdir&nowdir=$nowdir&userid=$userid&id=$id&detail=$detail";//实际上得到了一个php3文件

if($QUERY_STRING==""){
$filestring="file=index.php3.htm";
}
else{
$filestring=$QUERY_STRING.".htm";
}

//将文件路径名设为cookie
setcookie("REF_PAGE",$filestring);
$kk=3;//可能是一个判断量,设个初值是3

//检查文件是否存在
if(file_exists($filestring)){
//打开文件
$fx=fopen($filestring,"r");
//取前100个字符
$pp=fgets($fx,100);
fclose($fx);
//将取得的字符去掉首尾空格,并判断是否合格
if(trim($pp)=="<!-- $ver_id -->"){
//如果合格,那么包含文件
include($filestring);

}else{
//否则设$kk为1
$kk=1;
}
}
//如果文件不存在
else{
//首先看是不是$QUERY_STRING==""的情况
//如果是
if($filestring=="file=index.php3.htm"){
$kk=1;
}
//如果没有设置$REF_PAGE,那么$kk设为0
elseif($direct=="Y"){
$kk=0;
}
//其他情况下,也就是$QUERY_STRING!="",$direct=="N"
else{
//取文件,读文件,
if(file_exists($refpage)){
$ffp=fopen($refpage,"r");
$fcon=fread($ffp,120000);
//截到$QUERY_STRING>为止
if(strstr($fcon,$QUERY_STRING.">")){
$kk=1;
}
else{
$kk=0;
}
fclose($ffp);
}
else{
$kk=0;
}
}
}
//如果kk==0,打开先前的$openfile,一个php3文件,将路径换掉,<?,<%换成空……,就是把程序标签去掉。
if($kk==0){
$fd=fopen($openfile,"r");
$con = fread($fd,120000);
$con=str_replace("images/","$opendir/images/",$con);
$con=str_replace("<?","",$con);
$con=str_replace("<%","",$con);
$con=str_replace("language=php","",$con);
$con=str_replace("language='php'","",$con);
$con=str_replace('language="php"','',$con);
fclose($fd);
echo "$con";
}

//如果kk==1,换掉标签,去除多余空格,写入文件,还把文件属性设为666
if($kk==1){
$fd=fopen($openfile,"r");
$con = fread($fd,120000);
$con=str_replace("images/","$opendir/images/",$con);
fclose($fd);
$con=str_replace("<?","",$con);
$con=str_replace("<%","",$con);
$con=str_replace("language=php","",$con);
$con=str_replace("language='php'","",$con);
$con=str_replace('language="php"','',$con);
echo "$con";
$fp=fopen($filestring,"w");
fwrite($fp,"<!-- $ver_id -->\n",100);
$con=str_replace("\t","",$con);
$con=str_replace("\r","",$con);
$con = ereg_replace(">([ ]+)<", "><", $con);
$con = ereg_replace("\n([ ]+)<", "\n<", $con);
$con = ereg_replace("([\n]+)", "\n", $con);
fwrite($fp,$con,strlen($con));
fclose($fp);
chmod($filestring,0666);
}

//感觉好像是一个文件处理程序,把一个php3文件换成了静态的
//好像是在做一种模板处理,没有上下文,也说不太他细,前面的一堆东西只是为了取得替换条件,kk.如果
//kk为0,只换;kk为1,换了还要写.
?>
bushido 2003-08-19
  • 打赏
  • 举报
回复
我明白了,这是一个模板文件,用来生成静态页面的模板吧
bluemeteor 2003-08-19
  • 打赏
  • 举报
回复
///////////////////////////////////////
$date = getdate();
$yy = $date['year'];
$dd= $date['mday'];
$mm= $date['mon'];
if($mm<10){
$mm="0".$mm;
}
if($dd<10){
$dd="0".$dd;
}
$nowtime=$yy.$mm.$dd;

////////////////////////////////////////

同意唠叨,这段代码害了我读半分钟,服了
xuzuning 2003-08-19
  • 打赏
  • 举报
回复
此代码不可独立运行,需替换形如&&&ver_id&&&部分后用eval函数执行或替换后生成新文件

<?php
include("../../includes/config.php");
$ver_id=&&&ver_id&&&;
$userid=&&&userid&&&;
$mod=&&&mod&&&;
$exptime=&&&exptime&&&;
///////////////////////////////////////
本节等价于 $nowtime=date("Ymd");
纯属没事找事
$date = getdate();
$yy = $date['year'];
$dd= $date['mday'];
$mm= $date['mon'];
if($mm<10){
$mm="0".$mm;
}
if($dd<10){
$dd="0".$dd;
}
$nowtime=$yy.$mm.$dd;

////////////////////////////////////////
本节使用的部分变量与常量,应该在 ../../includes/config.php 中定义
由于楼主未贴出,无法细解
大意是读取一个文件,
去除其中的php标记;紧缩无用的空格;调整图片路径
输出或写入文件

if($nowtime>$exptime && $LOOK!="ok"){
header("location:../../exp.htm");
}
if($file==""){
$file="index.php3";
}
if(isset($REF_PAGE)){
$refpage=$REF_PAGE;
$direct="N";
}else{
$direct="Y";
}
$opendir="$baseurl/mod/$mod/";
$openfile=$opendir.$file;
$openfile=$openfile."?kdir=$kdir&nowdir=$nowdir&userid=$userid&id=$id&detail=$detail";
if($QUERY_STRING==""){
$filestring="file=index.php3.htm";
}else{
$filestring=$QUERY_STRING.".htm";
}
setcookie("REF_PAGE",$filestring);
$kk=3;
if(file_exists($filestring)){
$fx=fopen($filestring,"r");
$pp=fgets($fx,100);
fclose($fx);

if(trim($pp)=="<!-- $ver_id -->"){
include($filestring);

}else{
$kk=1;
}
}else{
if($filestring=="file=index.php3.htm"){
$kk=1;
}elseif($direct=="Y"){
$kk=0;
}else{
if(file_exists($refpage)){
$ffp=fopen($refpage,"r");
$fcon=fread($ffp,120000);
if(strstr($fcon,$QUERY_STRING.">")){
$kk=1;
}else{
$kk=0;
}
fclose($ffp);
}else{
$kk=0;
}

}
}

if($kk==0){
$fd=fopen($openfile,"r");
$con = fread($fd,120000);
$con=str_replace("images/","$opendir/images/",$con);
$con=str_replace("<?","",$con);
$con=str_replace("<%","",$con);
$con=str_replace("language=php","",$con);
$con=str_replace("language='php'","",$con);
$con=str_replace('language="php"','',$con);
fclose($fd);
echo "$con";
}


if($kk==1){
$fd=fopen($openfile,"r");
$con = fread($fd,120000);
$con=str_replace("images/","$opendir/images/",$con);
fclose($fd);
$con=str_replace("<?","",$con);
$con=str_replace("<%","",$con);
$con=str_replace("language=php","",$con);
$con=str_replace("language='php'","",$con);
$con=str_replace('language="php"','',$con);
echo "$con";
$fp=fopen($filestring,"w");
fwrite($fp,"<!-- $ver_id -->\n",100);
$con=str_replace("\t","",$con);
$con=str_replace("\r","",$con);
$con = ereg_replace(">([ ]+)<", "><", $con);
$con = ereg_replace("\n([ ]+)<", "\n<", $con);
$con = ereg_replace("([\n]+)", "\n", $con);
fwrite($fp,$con,strlen($con));
fclose($fp);
chmod($filestring,0666);
}
?>

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧