页:
[1]
| jingangel | 2008-3-11 03:21 AM |
|
dedecms代码分析
大家好,我有个提议大家不知道赞不赞同,
大家可以共同来分析dedecms的代码,
然后选一个最好的,专贴发布,
我先挑战自己,试着分析
[php]
<?php
//:index.php
//:如果config_base.php文章不存在,则程序没有安装,提示安装链接
if(!is_file(dirname(__FILE__)."/include/config_base.php")){
echo "<meta http-equiv=content-type content='text/html; charset=gb2312'>\r\n";
echo "·如果你还没安装本程序,请运行<a href='install/index.php'> install/index.php 进入安装>> </a><br/><br/>";
echo " <a href='http://www.dedecms.com' style='font-size:12px' target='_blank'>Power by DedeCms OX V5.0 2008版 织梦内容管理系统</a>";
exit();
}
/*:包含config_base.php(环境定义文件。用于检测系统环境,定义工作目录,保存数据库链接信息,引入常用函数等,建议不要修改。),inc_arcpart_view.php(用于解析和创建全局性质的模板,如频道封面,主页,单个页面等)
*/
require_once(dirname(__FILE__)."/include/config_base.php");
require_once(dirname(__FILE__)."/include/inc_arcpart_view.php");
//:创建数据库调用实例
$dsql = new DedeSql(-100);
//:从数据库的dede_homepageset表中,查询一条记录,表中记录的是主页的路径和主页模板的路径
$row = $dsql->GetOne("Select * From #@__homepageset");
//:关闭数据库连接
$dsql->Close();
//:此句应该是替换模板,在$row['templet'](主面模板的路径)中查找{style},替换为$cfg_df_style
$row['templet'] = str_replace("{style}",$cfg_df_style,$row['templet']);
//:创建 解析和创建全局性质的模板 的实例
$pv = new PartView();
//:设置要解析的模板 网站目录/模板目录/(主面模板的路径)
$pv->SetTemplet($cfg_basedir."/".$cfg_templets_dir."/".$row['templet']);
//:显示内容
$pv->Display();
$pv->Close();
//ookk
?>
[/php]
[[i] 本帖最后由 jingangel 于 2008-3-11 11:24 AM 编辑 [/i]] |
| jingangel | 2008-3-11 03:38 AM |
|
dede本来的源码中已经有很多的注释了,
自己的用的是//:
[php]
<?php
//:config_base.php
/*************************************************
本文件的信息不建议用户自行更改,否则发生意外自行负责
**************************************************/
//:显示除去 E_NOTICE 之外的所有错误信息
error_reporting(E_ALL & ~E_NOTICE);
/*:定义常量
dirname -- 返回路径中的目录部分 __FILE__ 是当前路径+文件名
dirname(__FILE__)返回当前文件路径的路径部分
*/
define('DEDEINC',dirname(__FILE__));
//:禁止用户提交某些特殊变量 (这块希望高手仔细分析用途)
$ckvs = Array('_GET','_POST','_COOKIE','_FILES');
$ckvs4 = Array('HTTP_GET_VARS','HTTP_POST_VARS','HTTP_COOKIE_VARS','HTTP_POST_FILES');
//PHP小于4.1版本的兼容性处理
$phpold = 0;
foreach($ckvs4 as $_k=>$_v){
if(!@is_array(${$_v})) continue;
if(!@is_array(${$ckvs[$_k]})){
${$ckvs[$_k]} = ${$_v}; unset(${$_v}); $phpold=1;
}
}
//全局安全检测
foreach($ckvs as $ckv){
foreach($$ckv AS $_k => $_v){
//: 如果用户提交的变量中有cfg_或globals等全局或系统变量,则注销
if(eregi("^(globals|cfg_)",$_k)) unset(${$ckv}[$_k]);
}
}
//检测上传的文件中是否有危险代码,有直接退出处理
if( !isset($cfg_NoUploadSafeCheck) ){
if (is_array($_FILES)) {
foreach($_FILES AS $_name => $_value){
${$_name} = $_value['tmp_name'];
$_fp = @fopen(${$_name},'r');
$_fstr = @fread($_fp,filesize(${$_name}));
@fclose($_fp);
//: 如果文件中有<?,<%,则退出
if($_fstr!='' && ereg("<(\?|%)",$_fstr)){
echo "你上传的文件中含有危险内容,程序终止处理!";
exit();
}
}
}}
//载入用户配置的系统变量
require_once(DEDEINC."/config_hand.php");
//设置站点维护状态开启后,程序文件最上方有 $cfg_IsCanView=true; 则该程序仍访问
if(!isset($cfg_IsCanView)) $cfg_IsCanView = false;
if(isset($cfg_websafe_open) && $cfg_websafe_open=='Y' && !$cfg_IsCanView){
include(DEDEINC.'/alert.htm');
exit();
}
//php5.1版本以上时区设置
if(!ereg("[^0-9-]",$cfg_cli_time)) $cfg_cli_time = 'Etc/GMT'.$cfg_cli_time;
function_exists('date_default_timezone_set') ? @date_default_timezone_set($cfg_cli_time) : '';
if(!isset($cfg_needFilter)) $cfg_needFilter = false;
$cfg_isUrlOpen = @ini_get("allow_url_fopen");
//安全模式检测
$cfg_isSafeMode = @ini_get("safe_mode");
if($cfg_isSafeMode){
$cfg_os = (isset($_ENV['OS']) ? strtolower($_ENV['OS']) : '');
if($cfg_os=='windows_nt') $cfg_isSafeMode = false;
}
if($phpold==1){ //低版本强制检查变量
$cfg_isMagic = false;
$cfg_registerGlobals = false;
}else{
$cfg_registerGlobals = @ini_get("register_globals");
//: ini_get()取得一些配置选项
$cfg_isMagic = @ini_get("magic_quotes_gpc");
}
//检测系统是否注册外部变量
if(!$cfg_isMagic) require_once(DEDEINC."/config_rglobals_magic.php");
else if(!$cfg_registerGlobals || $cfg_needFilter) require_once(DEDEINC."/config_rglobals.php");
//Session保存路径
$sessSavePath = DEDEINC."/../data/sessions/";
if(is_writeable($sessSavePath) && is_readable($sessSavePath)){ session_save_path($sessSavePath); }
//对于仅需要简单SQL操作的页面,引入本文件前把此$__ONLYDB设为true,可避免引入不必要的文件
if(!isset($__ONLYDB)) $__ONLYDB = false;
if(!isset($__ONLYCONFIG)) $__ONLYCONFIG = false;
//站点根目录
//$cfg_basedir = str_replace("\\","/",substr(DEDEINC,0,-8));
$ndir = str_replace("\\","/",dirname(__FILE__));
$cfg_basedir = eregi_replace($cfg_cmspath."/include[/]{0,1}$","",$ndir);
if($cfg_multi_site == 'Y') $cfg_mainsite = $cfg_basehost;
else $cfg_mainsite = "";
//数据库连接信息
$cfg_dbhost = 'localhost';
$cfg_dbname = 'believecn';
$cfg_dbuser = 'root';
$cfg_dbpwd = '000000';
$cfg_dbprefix = 'cn_';
$cfg_db_language = 'gbk';
//模板的存放目录
$cfg_templets_dir = $cfg_cmspath.'/templets';
$cfg_templeturl = $cfg_mainsite.$cfg_templets_dir;
//插件目录,这个目录是用于存放计数器、投票、评论等程序的必要动态程序
$cfg_plus_dir = $cfg_cmspath.'/plus';
$cfg_phpurl = $cfg_mainsite.$cfg_plus_dir;
//会员目录
$cfg_member_dir = $cfg_cmspath.'/member';
$cfg_memberurl = $cfg_mainsite.$cfg_member_dir;
//会员个人空间目录#new
$cfg_space_dir = $cfg_cmspath.'/space';
$cfg_spaceurl = $cfg_basehost.$cfg_space_dir;
$cfg_medias_dir = $cfg_cmspath.$cfg_medias_dir;
//上传的普通图片的路径,建议按默认
$cfg_image_dir = $cfg_medias_dir.'/allimg';
//上传的缩略图
$ddcfg_image_dir = $cfg_medias_dir.'/litimg';
//专题列表的存放路径
$cfg_special = $cfg_cmspath.'/special';
//用户投稿图片存放目录
$cfg_user_dir = $cfg_medias_dir.'/userup';
//上传的软件目录
$cfg_soft_dir = $cfg_medias_dir.'/soft';
//上传的多媒体文件目录
$cfg_other_medias = $cfg_medias_dir.'/media';
//圈子目录
$cfg_group_path = $cfg_cmspath.'/group';
//书库目录
$cfg_book_path = $cfg_cmspath.'/book';
//问答模块目录
$cfg_ask_path = $cfg_cmspath.'/ask';
//圈子网址
$cfg_group_url = $cfg_mainsite.$cfg_group_path;
//书库网址
$cfg_book_url = $cfg_mainsite.$cfg_book_path;
//问答模块网址
$cfg_ask_url = $cfg_mainsite.$cfg_ask_path;
//软件摘要信息,****请不要删除本项**** 否则系统无法正确接收系统漏洞或升级信息
//-----------------------------
$cfg_softname = "织梦内容管理系统";
$cfg_soft_enname = "DedeCms V5 2008版";
$cfg_soft_devteam = "织梦团队";
$cfg_version = '5_0_1_GBK';
//默认扩展名,仅在命名规则不含扩展名的时候调用
$art_shortname = '.html';
//文档的默认命名规则
$cfg_df_namerule = '{typedir}/{Y}/{M}{D}/{aid}.html';
//新建目录的权限,如果你使用别的属性,本程不保证程序能顺利在Linux或Unix系统运行
$cfg_dir_purview = 0755;
//引入数据库类和常用函数
require_once(DEDEINC.'/config_passport.php');
//:用于操作数据库
if(!$__ONLYCONFIG) include_once(DEDEINC.'/pub_db_mysql.php');
//:可供用户使用的函数集合
if(!$__ONLYDB) include_once(DEDEINC.'/inc_functions.php');
?>
[/php]
[[i] 本帖最后由 jingangel 于 2008-3-11 03:00 PM 编辑 [/i]] |
| lyhiving | 2008-3-11 05:35 AM |
|
[quote]原帖由 [i]yzxh24[/i] 于 2008-3-11 01:12 PM 发表
dede的代码写的太乱了,不好读! [/quote]
同解 |
| coolcool1265 | 2008-3-16 02:22 PM |
|
不过,dedecms号称是 cms的最好系统
我也再用它,只是还没有太长时间
高手们不妨来试着看看,
它是 柏拉图 一个人编写的
真可谓是 强人啊! |
| boneguan | 2008-3-19 06:53 AM |
|
| 我改过它的系统,增加了个批量上传图片功能,但没怎么深研。 不过里面结构还算清晰。但还是做个简单的批量功能,比用自己的框架 多了3倍的时间 |
| 306655152 | 2008-3-20 01:01 PM |
|
| dede... |
|
[quote]原帖由 [i]coolcool1265[/i] 于 2008-3-16 10:22 PM 发表
不过,dedecms号称是 cms的最好系统
我也再用它,只是还没有太长时间
高手们不妨来试着看看,
它是 柏拉图 一个人编写的
真可谓是 强人啊! [/quote]
貌似外国的cms 好多比他强的呢 不知道 您知道不。。 |
| jingangel | 2008-4-1 03:04 AM |
|
真是不好意思,仔细看了看是phpcms的代码分析
[url]http://www.lucms.com/redevelopment/20080401/51.html[/url]
[[i] 本帖最后由 jingangel 于 2008-4-1 11:12 AM 编辑 [/i]] |
| jingangel | 2008-4-29 02:40 AM |
|
inc_channel_unit_functions.php
代码贴出来,大家有知道的详细给分析分析,原来已经带了一部分解释
<?php
//------------------------------------------------
//该文件是所有涉及文档或列表读取必须引入的文件
//------------------------------------------------
global $PubFields,$cfg_mainsite,$cfg_plus_dir,$cfg_powerby,$cfg_indexname,$cfg_indexurl;
global $cfg_webname,$cfg_templets_dir,$cfg_df_style,$cfg_special,$cfg_member_dir;
//设置一些公用变量
$PubFields['phpurl'] = $cfg_mainsite.$cfg_plus_dir;
$PubFields['indexurl'] = $cfg_mainsite.$cfg_indexurl;
$PubFields['templeturl'] = $cfg_mainsite.$cfg_templets_dir;
$PubFields['memberurl'] = $cfg_mainsite.$cfg_member_dir;
$PubFields['specurl'] = $cfg_mainsite.$cfg_special;
$PubFields['indexname'] = $cfg_indexname;
$PubFields['powerby'] = $cfg_powerby;
$PubFields['webname'] = $cfg_webname;
$PubFields['templetdef'] = $cfg_templets_dir.'/'.$cfg_df_style;
$GLOBALS['pTypeArrays'] = Array();
$GLOBALS['idArrary'] = '';
//----------------------------------
//用星表示软件或Flash的等级
//----------------------------------
function GetRankStar($rank)
{
$nstar = "";
for($i=1;$i<=$rank;$i++) $nstar .= "★";
for($i;$i<=5;$i++) $nstar .= "☆";
return $nstar;
}
//-------------------------
//产品模块中供应方式的处理
//-----------------------
function SelSpType($stype){
$tps = array('厂家直销','厂家批发','商家批发','商家零售','其它渠道');
$rstr = "<select name='ssstype' style='width:80px'>\r\n";
foreach($tps as $tp){
$rstr .= ($stype==$tp ? "<option selected>$tp</option>\r\n" : "<option>$tp</option>\r\n");
}
$rstr .= "</select>\r\n";
return $rstr;
}
//-----------------------------
//获得文章网址
//----------------------------
function GetFileUrl(
$aid,$typeid,$timetag,$title,$ismake=0,$rank=0,
$namerule="",$artdir="",$money=0,$aburl=false,$siteurl="")
{
if($rank!=0||$ismake==-1||$typeid==0||$money>0) //动态文章
{
if($GLOBALS['cfg_multi_site']=='Y')
{
$siteurl = $GLOBALS['cfg_basehost'];
}
return $siteurl.$GLOBALS['cfg_plus_dir']."/view.php?aid=$aid";
}
else
{
$articleRule = $namerule;
$articleDir = MfTypedir($artdir);
if($namerule=="") $articleRule = $GLOBALS['cfg_df_namerule'];
if($artdir=="") $articleDir = $GLOBALS['cfg_cmspath'].$GLOBALS['cfg_arcdir'];
$dtime = GetDateMk($timetag);
$articleRule = strtolower($articleRule);
list($y,$m,$d) = explode("-",$dtime);
$articleRule = str_replace("{typedir}",$articleDir,$articleRule);
$articleRule = str_replace("{y}",$y,$articleRule);
$articleRule = str_replace("{m}",$m,$articleRule);
$articleRule = str_replace("{d}",$d,$articleRule);
$articleRule = str_replace("{timestamp}",$timetag,$articleRule);
$articleRule = str_replace("{aid}",$aid,$articleRule);
$articleRule = str_replace("{cc}",dd2char($m.$d.$aid.$y),$articleRule);
if(ereg('{p',$articleRule)){
$articleRule = str_replace("{pinyin}",GetPinyin($title)."_".$aid,$articleRule);
$articleRule = str_replace("{py}",GetPinyin($title,1)."_".$aid,$articleRule);
}
$articleUrl = "/".ereg_replace("^/","",$articleRule);
//是否强制使用绝对网址
if($aburl && $GLOBALS['cfg_multi_site']=='Y'){
if($siteurl=="") $siteurl = $GLOBALS["cfg_basehost"];
$articleUrl = $siteurl.$articleUrl;
}
return $articleUrl;
}
}
//获得新文件网址
//本函数会自动创建目录
function GetFileNewName(
$aid,$typeid,$timetag,$title,$ismake=0,$rank=0,
$namerule="",$artdir="",$money=0,$siterefer="",
$sitepath="",$moresite="",$siteurl="")
{
if($rank!=0||$ismake==-1||$typeid==0||$money>0){ //动态文章
return $GLOBALS['cfg_plus_dir']."/view.php?aid=$aid";
}
else
{
$articleUrl = GetFileUrl(
$aid,$typeid,$timetag,$title,$ismake,$rank,
$namerule,$artdir,$money);
$slen = strlen($articleUrl)-1;
for($i=$slen;$i>=0;$i--){
if($articleUrl[$i]=="/"){ $subpos = $i; break; }
}
$okdir = substr($articleUrl,0,$subpos);
CreateDir($okdir,$siterefer,$sitepath);
}
return $articleUrl;
}
//--------------------------
//获得指定类目的URL链接
//对于使用封面文件和单独页面的情况,强制使用默认页名称
//-------------------------
function GetTypeUrl($typeid,$typedir,$isdefault,$defaultname,$ispart,$namerule2,$siteurl="")
{
//跳转网址
if($ispart>2){
return $typedir;
}
if($defaultname == 'index.html'){
$defaultname = '';
}
if($isdefault==-1)
{
$reurl = $GLOBALS["cfg_plus_dir"]."/list.php?tid=".$typeid;
}else if($ispart>0)
{
$reurl = "$typedir/".$defaultname;
}else
{
if($isdefault==0)
{
$reurl = str_replace("{page}","1",$namerule2);
$reurl = str_replace("{tid}",$typeid,$reurl);
$reurl = str_replace("{typedir}",$typedir,$reurl);
}else
{
$reurl = "$typedir/".$defaultname;
}
}
$reurl = ereg_replace("/{1,}","/",$reurl);
if($GLOBALS['cfg_multi_site']=='Y'){
if($siteurl=="" || $isdefault==-1) $siteurl = $GLOBALS['cfg_basehost'];
if($siteurl!="abc") $reurl = $siteurl.$reurl;
}
$reurl = eregi_replace("{cmspath}",$GLOBALS['cfg_cmspath'],$reurl);
return $reurl;
}
//魔法变量,用于获取两个可变的值
//------------------------
function MagicVar($v1,$v2)
{
if($GLOBALS['autoindex']%2==0) return $v1;
else return $v2;
}
//获取上级ID列表
function GetParentIDS($tid,&$dsql)
{
global $_Cs;
$GLOBALS['pTypeArrays'][] = $tid;
if(!is_array($_Cs)){ require_once(dirname(__FILE__)."/../data/cache/inc_catalog_base.php"); }
if(!isset($_Cs[$tid]) || $_Cs[$tid][0]==0){
return $GLOBALS['pTypeArrays'];
}
else{
return GetParentIDS($_Cs[$tid][0],$dsql);
}
}
//----------------------
//获取一个类目的顶级类目ID
//----------------------
function SpGetTopID($tid){
global $_Cs;
if(!is_array($_Cs)){ require_once(dirname(__FILE__)."/../data/cache/inc_catalog_base.php"); }
if($v[$tid][0]==0) return $tid;
else return SpGetTopID($tid);
}
//----------------------
//获取一个类目的所有顶级栏目ID
//----------------------
global $TopIDS;
function SpGetTopIDS($tid){
global $_Cs,$TopIDS;
if(!is_array($_Cs)){ require_once(dirname(__FILE__)."/../data/cache/inc_catalog_base.php"); }
$TopIDS[] = $tid;
if($_Cs[$tid][0]==0) return $TopIDS;
else return SpGetTopIDS($tid);
}
//-----------------------------
// 返回与某个目相关的下级目录的类目ID列表(删除类目或文章时调用)
//由于PHP有些版本存在Bug,不能直接使用同一数组在递归逻辑,只能复制副本传递给函数
//-----------------------------
function TypeGetSunTypes($ID,&$dsql,$channel=0)
{
global $_Cs;
$GLOBALS['idArray'] = array();
if( !is_array($_Cs) ){ require_once(dirname(__FILE__)."/../data/cache/inc_catalog_base.php"); }
TypeGetSunTypesLogic($ID,$_Cs,$channel);
return $GLOBALS['idArray'];
}
function TypeGetSunTypesLogic($ID,$sArr,$channel=0)
{
if($ID!=0) $GLOBALS['idArray'][$ID] = $ID;
foreach($sArr as $k=>$v)
{
if( $v[0]==$ID && ($channel==0 || $v[1]==$channel ))
{
TypeGetSunTypesLogic($k,$sArr,$channel);
}
}
}
//--------------------------------
//获得某ID的下级ID(包括本身)的SQL语句“($tb.typeid=id1 or $tb.typeid=id2...)”
//-----------------------------
function TypeGetSunID($ID,&$dsql,$tb="#@__archives",$channel=0,$onlydd=false)
{
$GLOBALS['idArray'] = array();
TypeGetSunTypes($ID,$dsql,$channel);
$rquery = "";
foreach($GLOBALS['idArray'] as $k=>$v)
{
if($onlydd){
$rquery .= ($rquery=='' ? $k : ",{$k}");
}else{
if($tb!="")
$rquery .= ($rquery!='' ? " Or {$tb}.typeid='$k' " : " {$tb}.typeid='$k' ");
else
$rquery .= ($rquery!='' ? " Or typeid='$k' " : " typeid='$k' ");
}
}
if($onlydd) return $rquery;
else return " (".$rquery.") ";
}
//栏目目录规则
function MfTypedir($typedir)
{
global $cfg_cmspath;
if(eregi("^http://",$typedir)) return $typedir;
$typedir = eregi_replace("{cmspath}",$cfg_cmspath,$typedir);
$typedir = ereg_replace("/{1,}","/",$typedir);
return $typedir;
}
//模板目录规则
function MfTemplet($tmpdir)
{
global $cfg_df_style;
$tmpdir = eregi_replace("{style}",$cfg_df_style,$tmpdir);
$tmpdir = ereg_replace("/{1,}","/",$tmpdir);
return $tmpdir;
}
//获取网站搜索的热门关键字
function GetHotKeywords(&$dsql,$num=8,$nday=365,$klen=16,$orderby='count'){
global $cfg_phpurl,$cfg_cmspath;
$nowtime = time();
$num = @intval($num);
$nday = @intval($nday);
$klen = @intval($klen);
if(empty($nday)) $nday = 365;
if(empty($num)) $num = 6;
if(empty($klen)) $klen = 16;
$klen = $klen+1;
$mintime = $nowtime - ($nday * 24 * 3600);
if(empty($orderby)) $orderby = 'count';
$dsql->SetQuery("Select keyword,istag From #@__search_keywords where lasttime>$mintime And length(keyword)<$klen order by $orderby desc limit 0,$num");
$dsql->Execute('hw');
$hotword = "";
while($row=$dsql->GetArray('hw')){
if($row['istag']==1) $hotword .= " <a href='".$cfg_cmspath."/tag.php?/{$row['keyword']}/'>".$row['keyword']."</a> ";
else $hotword .= " <a href='".$cfg_phpurl."/search.php?keyword=".urlencode($row['keyword'])."&searchtype=titlekeyword'>".$row['keyword']."</a> ";
}
return $hotword;
}
//
function FormatScript($atme){
if($atme==" ") return "";
else return trim(html2text($atme));
}
//------------------------------
//获得自由列表的网址
//------------------------------
function GetFreeListUrl($lid,$namerule,$listdir,$defaultpage,$nodefault){
$listdir = str_replace('{cmspath}',$GLOBALS['cfg_cmspath'],$listdir);
if($nodefault==1){
$okfile = str_replace('{page}','1',$namerule);
$okfile = str_replace('{listid}',$lid,$okfile);
$okfile = str_replace('{listdir}',$listdir,$okfile);
}else{
$okfile = $listdir.'/'.$defaultpage;
}
$okfile = str_replace("\\","/",$okfile);
$trueFile = $GLOBALS['cfg_basedir'].$okfile;
if(!file_exists($trueFile)){
$okfile = $GLOBALS['cfg_phpurl']."/freelist.php?lid=$lid";
}
return $okfile;
}
//----------
//判断图片可用性
function CkLitImageView($imgsrc,$imgwidth){
$imgsrc = trim($imgsrc);
if(!empty($imgsrc) && eregi('^http',$imgsrc)){
$imgsrc = $cfg_mainsite.$imgsrc;
}
if(!empty($imgsrc) && !eregi("img/dfpic\.gif",$imgsrc)){
return "<img src='".$imgsrc."' width=80 align=left>";
}
return "";
}
//----------
//使用绝对网址
function Gmapurl($gurl){
if(!eregi("http://",$gurl)) return $GLOBALS['cfg_basehost'].$gurl;
else return $gurl;
}
//----------------
//获得图书的URL
//----------------
function GetBookUrl($bid,$title,$gdir=0)
{
global $cfg_cmspath;
if($gdir==1) $bookurl = "{$cfg_cmspath}/book/".DedeID2Dir($bid);
else $bookurl = "{$cfg_cmspath}/book/".DedeID2Dir($bid).'/'.GetPinyin($title).'-'.$bid.'.html';
return $bookurl;
}
//-----------------
//根据ID生成目录
//-----------------
function DedeID2Dir($aid)
{
$n = ceil($aid / 1000);
return $n;
}
?> |
| sanders_yao | 2008-4-29 04:55 AM |
|
| 一年前曾经读过一部分 执行效率很成问题 |
| coolcool1265 | 2008-5-3 10:49 AM |
|
| 一直关注中ing |
|
| 同意各位说法,柏拉图精神值得鼓励,只是应该规划下书写,提高下效率。 |
| jingangel | 2008-5-16 07:21 AM |
|
| 我不准备继续下去了,因为我发现这代码大多数我都看不懂,....... |
|
[quote]原帖由 [i]jingangel[/i] 于 2008-5-16 03:21 PM 发表
我不准备继续下去了,因为我发现这代码大多数我都看不懂,....... [/quote]
如果想学习他 某个功能怎样实现的还是可以看一下的 |
Powered by Discuz! Archiver 6.1.0
© 2001-2006 Comsenz Inc.
Processed in 0.011987 second(s), 2 queries |