当前位置:文档之家› 常用函数 类参考

常用函数 类参考

全局函数1、common.func.php 公用函数获得当前的脚本网址function GetCurUrl()返回格林威治标准时间function MyDate($format='Y-m-d H:i:s',$timest=0)把全角数字转为半角function GetAlabNum($fnum)把含HTML的内容转为纯textfunction Html2Text($str,$r=0)把文本转HTMLfunction Text2Html($txt)输出Ajax头function AjaxHead()中文截取2,单字节截取模式function cn_substr($str,$slen,$startdd=0)把标准时间转为Unix时间戳function GetMkTime($dtime)获得一个0000-00-00 00:00:00 标准格式的时间function GetDateTimeMk($mktime)获得一个0000-00-00 标准格式的日期function GetDateMk($mktime)获得用户IPfunction GetIP()获取拼音以gbk编码为准function GetPinyin($str,$ishead=0,$isclose=1)dedecms通用消息提示框function ShowMsg($msg,$gourl,$onlymsg=0,$limittime=0)保存一个cookiefunction PutCookie($key,$value,$kptime=0,$pa="/")删除一个cookiefunction DropCookie($key)获取cookiefunction GetCookie($key)获取验证码function GetCkVdValue()过滤前台用户输入的文本内容// $rptype = 0 表示仅替换html标记// $rptype = 1 表示替换html标记同时去除连续空白字符// $rptype = 2 表示替换html标记同时去除所有空白字符// $rptype = -1 表示仅替换html危险的标记function HtmlReplace($str,$rptype=0)获得某文档的所有tagfunction GetTags($aid)过滤用于搜索的字符串function FilterSearch($keyword)处理禁用HTML但允许换行的内容function TrimMsg($msg)获取单篇文档信息function GetOneArchive($aid)数据库类系统会自动载入dedesql.class.php 文件,并用$dsql = $db = new DedeSql(false);进行初始化数据库连接,因此在工程所有文件中均不需要单独初始化这个类,可直接用$dsql 或$db 进行操作,为了防止错误,操作完后不必关闭数据库。

常用的方法:1、执行一个非查询类型的SQL语句,如insert 、create 、update 等$rs = $db->ExecuteNoneQuery($sql);返回值为是否执行成功。

2、执行一个非查询类型的SQL语句,并返回成功记录数$rs = $db->ExecuteNoneQuery2($sql);与上面相比,它返回的是影响的记录数,而不是布尔值3、返回单个记录$arr = $db->GetOne($sql);$dsql 如果不带limit ,系统会自动加上limit 0,14、执行条件查询语句$db->SetQuery($dsql);$db->Execute();while($arr = $db->GetArray()){}可以简化为:$db->Execute('me',$dsql);while($arr = $db->GetArray()){}'me' 为记录集游标,用于区分不同的查询,如:$db->Execute('me',$dsql);while($arr = $db->GetArray()){$db->Execute('2',$dsql2);while($arr2 = $db->GetArray()){}}像这种情况必须指定一个值区分默认的'me'参数,否则会出错$db->GetArray($rsid,$acctype) 参数$rsid="me"$acctype=MYSQL_ASSOC在查询游标中读取数据还可以用$db->GetObject($rsid="me");返回的结果是用类结构表示的值。

5、获取上一个插入的自动递增主键id值$db->GetLastID();6、获得查询的总记录数$db->GetTotalRow($rsid="me")7、获得MySql的版本号$db->GetVersion($isformat=true)默认的情况下会转换成x.xx 形式浮点数8、析放某查询的资源$db->FreeResult($rsid="me");9、在数据库中是否存在某数据表$db->IsTable($tbname)10、重新选择要操作的数据库$db->SelectDB($dbname);11、获得数据库连接标识$db->linkID获得这个连接标识后,可以直接用mysql相关函数进行数据库操作在非不得已的情况,项目中一般不使用这个变量。

动态分页类类文件include/datalistcp.class.php适用范围:数据量不大的数据分页使用方法:$dl = new DataListCP();$dl->pageSize = 25; //设定每页显示记录数(默认25条)$dl->SetParameter($key,$value); //设定get字符串的变量//这两句的顺序不能更换$dl->SetTemplate($tplfile); //载入模板$dl->SetSource($sql); //设定查询SQL$dl->Display(); //显示模板{dede:datalist}<li>{field.fieldname1/} - {field.fieldname2/} ...</li>{/dede:datalist}{tag:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/}listitem、listsize 是可选属性如果需要自定义datalist 相关属性,可以继续本类来创建一个新类,只需改变GetArcList($atts,$refObj='',$fields=array()) 方法即可。

静态模板类类文件include/dedetag.class.php这个文件是dedecms V5.3及之前版本使用的主要的模板类,它是解析式模板类,并非编译式的(区别是前者通过获得标签位置进行内容替换,后者是直接解析式PHP代码,二次执行)一、模板语法织梦模板引擎是一种使用XML名字空间形式的模板解析器,使用织梦解析器解析模板的最大好处是可以轻松的制定标记的属性,感觉上就像在用HTML一样,使模板代码十分直观灵活,新版的织梦模板引擎不单能实现模板的解析还能分析模板里错误的标记。

1、织梦模板引擎的代码样式有如下几种形式:{dede:标记名称属性='值'/}{dede:标记名称属性='值'}{/dede:标记名称}{dede:标记名称属性='值'}自定义样式模板(InnerText){/dede:标记名称}提示:如果使用带底层模板的标记,必须严格用{dede:标记名称属性='值'}{/dede:标记名称} 这种格式,否则会报错。

2、织梦模板引擎内置有多个系统标记,这些系统标记在任何场合都是能直接使用的。

(1) global标记,表示获取一个外部变量,除了数据库密码之外,能调用系统的任何配置参数,形式为:{dede:global name='变量名称'}{/dede:global}或{dede:global name='变量名称'/}其中变量名称不能加 $ 符号,如变量 $cfg_cmspath ,应该写成 {dede:globalname='cfg_cmspath'/} 。

(2) foreach用来输出一个数组,形式为:{dede:foreach array='数组名称'}[field:key/] [field:value/]{/dede:foreach}(3) include引入一个文件,形式为:{dede:include file='文件名称' ismake='是否为dede板块模板(yes/no)'/}对文件的搜索路径为顺序为:绝对路径、include文件夹,CMS安装目录,CMS主模板目录3、织梦标记允许在任何标记中使用函数对得到的值进行处理,形式为:{dede:标记名称属性='值' function='youfunction("参数一","参数二","@me")'/}其中 @me 用于表示当前标记的值,其它参数由你的函数决定是否存在,例如:{dede:field name='pubdate' function='strftime("%Y-%m-%d %H:%M:%S","@me")'/}4、织梦标记允许有限的编程扩展。

格式为:{dede:tagname runphp='yes'}$aaa = @me;@me = "123456";{/dede:tagname}@me 表示这个标记本身的值,因此标记内编程是不能使用echo之类的语句的,只能把所有返回值传递给@me。

此外由于程序代码占用了底层模板InnerText的内容,因此需编程的标记只能使用默认的InnerText。

二、解析方式在 dedetag.class.php 里面有四个类class DedeAttribute 属性结构表述class DedeAttributeParse 属性解析器class DedeTag 标签结构表述class DedeTagParse 标签解析器使用解析类解析模板时一般经过下面的步骤1、初始化:$dtp = new DedeTagParse();2、载入模板/模板字符串:$dtp->LoadTemplate(模板文件(绝对路径)); //会生成缓存,第二次不需解析模板或$dtp->LoadSource(字符串);3、给标签赋值foreach($dtp->CTags as $tid=>$ctag) {//判断ctag的名称和属性,并给赋不同的值,通常用函数处理if($ctag->GetName=='mytag') $dtp->Assign($tid, mytagvalue($ctag) );}在上面例子中,直接把名称为 mytag的标签转交给mytagvalue 函数处理,mytagvalue 里判断$ctag的各个属性,返回不同内容即可。

相关主题