织梦dedeCMS二次开发文档手册

上传人:m**** 文档编号:121439186 上传时间:2022-07-19 格式:DOC 页数:39 大小:149.50KB
收藏 版权申诉 举报 下载
织梦dedeCMS二次开发文档手册_第1页
第1页 / 共39页
织梦dedeCMS二次开发文档手册_第2页
第2页 / 共39页
织梦dedeCMS二次开发文档手册_第3页
第3页 / 共39页
资源描述:

《织梦dedeCMS二次开发文档手册》由会员分享,可在线阅读,更多相关《织梦dedeCMS二次开发文档手册(39页珍藏版)》请在装配图网上搜索。

1、DedeCMS二次开发必备基础:非常熟悉HTML熟悉DIV+CSS的布局扎实的PHP基础,熟悉结构化编程,了解OOP,并能看懂和使用熟悉MYSQL,掌握SQL语言DedeCMS二次开发学习过程理解CMS是什么熟悉DedeCMS的功能(如:栏目的分类,文档管理,模型的使用,系统的 设置等常用的功能)掌握DedeCMS的模板标签使用及原理 DedeCMS目录结构分析 熟悉每个文件夹里面主要装什么文件,这样在二次开发的时候知道在哪 个文件夹下的什么文件修改目录结构摘要:./a生成文件存放路径./data 缓存文件及数据中心 /admin 管理后台数据/backupdata备份数据 /cache 缓存

2、文件/enums级别联动数据,JS,枚举类型的缓存文件 /js常用的JS/mark水印相关文件 /module模块安装文件/rss Rss 相关 /sessions Session 存放路径/textdata文本数据/tplcache模板缓存 /uploadtmp 上传文件缓存位置 /ziptmp zip包解压缓存位置 DedeCMS文件结构分析 熟悉每个文件的基本功能,方便做修改,知道每个文件的大概作用之后, 可以方便的对文件进行修改文件结构摘要:common.inc.php 数据库配置文件 config.cache.bak.php 后台系统配置备份 config.cache.inc.php

3、 后台系统配置文件缓存 downmix.data.php 采集混淆缓存文件 mysql_error_track.inc MYSQL 错误志safequestions.php 安全问题 sitemap.html 站点地图支付网关配置template.rand.php 随机模板设置 DedeCMS 数据库结构分析,至少要熟悉每个表的作用熟悉每个表的作用,了解几个核心表的设计及字段的含义,方便拿到新 的需求之后,能快速的判断是否加字段,还是新建表来处理。同时也能 理解 DedeCMS 的数据库设计思想,把有用的设计思路加到自己的系统中 DedeCMS 的流程控制,及一些核心文件的解析熟悉一些登陆,注

4、册,文档管理,权限控制,分类管理,模型设置等一 些常用流程控制。对几个核心文件进行解剖,了解其编程技巧及安全机 制 DedeCMS 插件的开发(*式插件和内嵌式插件) 熟悉两种插件的编写,插件的导入导出,插件搭配模型的使用 掌握里面的编程技巧及系统设计技巧织梦 dedeCMS 二次开发文档手册,文件详解以及数据库结构字段说明1、程序核心程序目录及简介/include 目录 程序核心目录config_base.php 环境定义文件。用于检测系统环境,定义工作目录,保存数据库链接信息,引入常用函 数等,建议不要修改。config_hand.php 系统配置文件。定义系统常用的配置信息定义,可从后台

5、管理直接生成该文件。 config_passport.php 通行证文件config_rglobals.php 检测系统外部变量config_rglobals_magic.php 同上inc_archives_view.php 用于浏览文档或对文档生成 HTML inc_arclist_view.php 用于浏览频道列表或对内容列表生成 HTML inc_arcmember_view.php 用于浏览会员发布的文档inc_arcpart_view.php 用于解析和创建全局性质的模板,如频道封面,主页,单个页面等inc_arcsearch_view.php 用于文档搜索inc_arcspec_

6、view.php 用于浏览所有专题列表或对专题列表生成 HTML inc_channel_unit.php 用户解析特定频道的附加数据结构信息inc_channel_unit_functions.php 系统共用函数集合inc_downclass.php 防采集随机字符串函数inc_freelist_view.php 用于对特定内容列表生成 HTML inc_functions.php 可供用户使用的函数集合inc_imgbt.php GetTypeidSelMember inc_memberlogin.php 用于用户登录及获得会员状态inc_photograph.php 用于处理系统中的图

7、片,例如水印,缩略图等inc_photowatermark_config.php 图片处理参数定义inc_rss_view.php 用于浏览频道 RSS 或对 RSS 生成静态文件 inc_separate_functions.php SpGetArcList 函数,用于获得文档列表inc_sitemap.php 用于生成网站地图inc_type_tree.php 用于选择栏目的目录树inc_type_tree_member.php 同上,会员使用inc_typelink.php 用于显示文章的位置和栏目位置等inc_typeunit_admin.php 用于频道管理时的一些复杂操作,主要用于

8、后台inc_typeunit_menu.php 同上inc_userlogin.php 用于管理员登录inc_vote.php 用于管理投票jump.php 用于超链接跳转pub_charset.php 共用字符处理函数,GB/UTF-8/Unicode/BIG5 等互换pub_collection.php 用于采集pub_collection_functions.php 采集用函数pub_datalist.php 后台管理用数据列表pub_datalist_dm.php 同上,不使用模板pub_db_mysql.php 用于操作数据库pub_dedehtml2.php 用于采集中的 HTML

9、 解析pub_dedehtml.php HTML 解析器pub_dedetag.php 用于 dede 模板标签解析pub_httpdown.php 用于下载 http 中的资源pub_oxwindow.php 后台程序扩展pub_splitword_www.php 织梦分词算法validateimg.php 验证码vdimgck.php 验证码/inc 共用函数目录inc_fun_funAdmin.php 获取拼音码等函数inc_fun_funString.php html 代码处理等函数inc_fun_SpGetArcList.php 获取文档列表 SpGetArcList对于菜鸟来说,对

10、于菜鸟来说,config_base.php,这个文件,当你的程序出现问题,需要覆盖,当你的程序出现问题,需要覆盖。不要覆盖config_base.php和config_hand.php文件,里面都是dede 一些核心配置文件,对于高手来说,也许修改几个php页面已经达不到目的了,就需要了解dede的数据库结构,下 面是部分关键数据表的结构和说明,不完全,还没有整理完全,过几天发布完整版本主要数据结构表已经可以指导开发了dede_addonarticle 附加文章表 aid int(11) 文章编号typeid int(11) 分类栏目编号body mediumtext 文章内容 dede_ad

11、donflash 附加 Flash 表 aid int(11) FLASH 编号typeid int(11) 分类栏目编号filesize varchar(10) 文件大小 playtime varchar(10) 播放时长 flashtype varchar(10) 作品类型 flashrank smallint(6) 作品等级 width smallint(6) 影片宽度height smallint(6) 影片高度flashurl varchar(80) FLASH 地址dede_addonimages 附加图集表aid int(11) 图集编号typeid int(11) 分类栏目编号

12、pagestyle smallint(6) 表现方式(1 单页显示 2 分多页显示 3 多行多列展示)maxwidth smallint(6) 大图限制宽度imgurls text 图片集内容(标签存放)row smallint(6) 多列式参数(行)col smallint(6) 多列式参数(列)isrm smallint(6) 是否下载远程图片ddmaxwidth smallint(6) 小图片宽度限制dede_addonsoft 附加软件表aid int(11) 软件编号typeid int(11) 分类栏目编号filetype varchar(10) 文件类型language varc

13、har(10) 界面语言softtype varchar(10) 软件类型accredit varchar(10) 授权方式os varchar(30) 运行环境softrank int(11) 软件等级officialUrl varchar(30) 官方网址officialDemo varchar(50) 程序演示地址softsize varchar(10) 软件大小softlinks text 软件下载链接列表introduce text 软件介绍dede_addonspec 附加专题表aid int(11) 专题编号typeid int(11) 分类栏目编号note text 专题内容(

14、仅存放标签代码)dede_admin 管理员信息表ID int(10) 自动编号usertype int(10) 用户类型userid varchar(30) 用户登录 ID pwd varchar(50) 用户密码uname varchar(20) 用户笔名tname varchar(30) 真实姓名email varchar(30) 电子邮箱typeid int(11) 负责频道(0 表示全部)logintime datetime 登录时间loginip varchar(20) 登录 IP dede_admintype 系统用户组管理表rank smallint(6) 组级别编号typen

15、ame varchar(30) 组名称system smallint(6) 是否为系统默认组purviews text 权限列表dede_arcatt 文档自定义属性表att smallint(6) 编号attname varchar(30) 属性名称dede_archives 文章表ID int(11) 自动编号typeid int(11) 所属主栏目编号typeid2 int(11) 所属副栏目编号sortrank int(11) 文章排序(置顶方法)iscommend smallint(6) 是否推荐ismake smallint(6) 是否生成静态channel int(11) 文章所

16、属模型arcrank smallint(6) 阅读权限click int(11) 点击次数title varchar(80) 标题shorttitle varchar(36) 简略标题color varchar(10) 标题颜色writer varchar(30) 作者source varchar(50) 来源litpic varchar(100) 缩略图pubdate int(11) 录入时间senddate int(11) 发布时间arcatt smallint(6)自定属性(att) adminID int(11) 发布管理员 ID memberID int(11) 发布会员 ID de

17、scription varchar(250) 摘要keywords varchar(60) 关键词lastpost int(11) 最近评论时间postnum int(11) 评论数目redirecturl varchar(150) 跳转网址mtype int(11) 用户自定义分类userip varchar(20) 用户 IP locklikeid smallint(6) 是否锁定相关文章likeid varchar(240) 相关文章 ID dede_arcrank 阅读权限表ID int(10) 自动编号rank smallint(10) 权限等级membername varchar(

18、20) 等级名称adminrank smallint(10) 管理等级money int(11) 消费点数dede_arctype 栏目管理表ID int(10) 栏目编号(自动编号)reID int(10) 父栏目编号topID int(10) sortrank smallint(6) 排序编号typename varchar(30) 栏目名称typedir varchar(100) 栏目目录isdefault smallint(6) 栏目列表选项(1 链接到默认页 0 链接到列表第一页 -1 使用动态页)defaultname varchar(20) 默认页的名称issend smalli

19、nt(6) 是否支持投稿channeltype smallint(6) 频道类型maxpage int(11) 保留ispart smallint(6) 栏目属性corank smallint(6) 浏览权限tempindex varchar(60) 封面模板temparticle varchar(60) 文章模板tempone varchar(60) 单独页面模板namerule varchar(50) 文章命名规则namerule2 varchar(50) 列表命名规则modname varchar(30) 模板名称description varchar(200) 栏目介绍keywords

20、 varchar(100) 关键词moresite smallint(6) 多站点支持siterefer smallint(6) 多站点站点根目录属性sitepath varchar(60) 多站点站点根目录siteurl varchar(60) 多站点绑定域名ishidden smallint(6) 是否隐藏栏目dede_area 地区表eid int(11) 地区编号rid int(11) 编号属性10、DEDE 读取其它程序数据库,中文有乱码怎么办?最近有一个单子,要用到另外一个开源 PHP 的功能,我把它的数据库导入到和 DEDE 数据库放在一起, 前台功能则完全使用该开源 PHP 的

21、功能,仅仅对样式做少量修改。然后把这个开源PHP的后台管理删掉,打算自己在DEDE后台做一个管理功能,去管理这个PHP程序 的数据库。结果用DEDE后台的规范写法,得到界面上来自数据库的中文竟然全是乱码。在仔细一查数据库,原来DEDE的GBK版的数据表的字符集是GBK的,而这个开源项目的数据表字符 集是 latin1 。试了一下把数据表改为字符集GBK,结果开源PHP的前台变成了乱码郁闷,应该有办法的,我不要重新写代码!找了一些资料,在DEDE后台代码加入了一行,就还原了中文:mysql_query(SET NAMES latinl);注意这一行代码,最好放在 require_once(dir

22、name(_FILE_)./config.php);之后如果导入的数据库是UTF8的,也可以使用mysql_query(SET NAMES utf8);11、mysql的utf8中文排序的解决方法:最近,处理一个 UTF 版 DEDE 的项目时候,自己写了一段代码,需要对文章标题进行排序,但是死活发 现排列出来的顺序是乱的!上网查到原因如下:在mysql中使用默认字符集为utf8,结果想要把中文按拼音排序出现了问题,排出 来的顺序乱七八糟,不是想要的结果!解决办法如下:不想改变表定义及默认编码的情况,将字段先转换成gbk编码再排序:SELECT * FROM dede_archives ORD

23、ER BY CONVERT( title USING gbk ) asc;前提是在安装 mysql 时安装了 gbk 字符集,不然会报错“ #1115 - Unknown character set: gbk” 在编译源码时加上 gbk 编码即可,如果已经安装好了,重新编译再安装,重新编译安装一般不会影响 mysql 的已有设置,包括数据都不会受到影响。12、模板的 PHP 标签,不要带有 funtion 定义!最近,一个客户反映一个莫名其妙的问题:一种自定义模型的内容页单独生成静态HTML是0K的,但 是如果是批量生成的时候后台就空白一片,不能生成。无论是在管理列表里选多个文章生成,还是在生

24、成 内容页哪里选此类文章所在栏目进行生成,都不行!我当时也有点晕,先是反复怀疑模型定义有什么问题,然后又怀疑是DEDE的dedetag解析代码有问题, 通过很复杂的调试方法跟踪代码运行(说实话,这是我第一次触及DEDE最底层的dedetag解析代码,还 挺有意思的,大体思路看懂了,但是细节还没完全搞明白,以后再深入研究研究),但是搞了大半天就是没 有个所以然后来,晕乎乎去看 CBA 了,看着看着球,突然灵光一闪,为什么会忽略掉模板的因素呢? 虽然想不通 为什么生成一页可以,连续生成多页就不行,但是也只能先看看模板有什么特殊再说了!一看不得了,原来模板里别人写了大段大段的php代码,一行行看,突

25、然看到“function xxx字样的函数 定义,结合之前的 dedetag 解析脑袋一转就想通了:dedetag解析,对于模板里的PHP代码,是编译成了真正PHP代码,如果模板里有一个function定义, 那么在连续生产该模板对应页面的过程中,因为是同一个文件调用的dedetag解析模板,等于这个function 被反复定义了,这就不符合PHP的语法规则,正常来说重复定义函数是有报错的,但是由于这些代码是被 解析执行的(也可能是主机环境配置的问题),这个错误没有被报告,仅仅是空白一片!其实上面一堆,一般模板制作者也无需看,只要记住一点:漠板的PHP标签,不要带有funtion定义(与 此同

26、理,类似 class 定义等,都不要做)13、dede根据文章ID获取文章静态地址的函数网上搜索到的,原作者已经不清楚是谁了,如果看到请来这里跟帖说明,或者站内信给我凡是用到公用表的任何模型都可以使用增加到 inculdeextend.func.php 文件最后的?之前(如果没有这个文件,请新建一个,并在以下代码前后分别加上 ? 和 ?)复制代码1. function GetOneDocUrl($aid)2. 3. global $dsql;4. include_once(DEDEINC./channelunit.func.php);5. $aid = trim(ereg_replace(F0

27、-9,”,$aid);6.7.$chRow = $dsql-GetOne(Select arc.*,ch.maintable,ch.addtable,ch.issystem From 2d30_arctiny arc left join 2d30_channeltype ch on ch.id=arc.channel where arc.id=$aid);9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.return $reArr;else if(empty($chRowmaintable) $c

28、hRowmaintable = 2d30_archives;if($chRowissystem!=-1)$nquery = Select arc.*,tp.typedir,tp.topid,tp.namerule,tp.moresite,tp.siteurl,tp.sitepathFrom $chRowmaintable arc left join 2d30_arctype tp on tp.id=arc.typeidwhere arc.id=$aid;else$nquery = Select arc.*,1 as ismake,0 as money, as 行lename,tp.typedi

29、r,tp.topid,tp.namerule,tp.moresite,tp.siteurl,tp.sitepathFrom $chRowaddtable arc left join 2d30_arctype tp on tp.id=arc.typeidwhere arc.aid=$aid;$arcRow = $dsql-GetOne($nquery);$Url = GetFileUrl($aid,$arcRowtypeid,$arcRowsenddate,$reArrtitle,$arcRowismake,$arcRowarcrank,$ar cRownamerule,$arcRowtyped

30、ir,$arcRowmoney,$arcRowfilename,$arcRowmoresite,$arcRowsiteurT,$arcRowsite path);return $Url;在自己写的 PHP 标签或 SQL 标签里调用方式为dede:field.id function=GetOneDocUrl(me)7BOMPHP程序的UTF8神秘编码问题之解提示:采用 UTF-8 编码的用户请勿使用记事本对代码文件及模板文件进行编辑,使用可以去掉 Unicode 签 名(BO M)的工具进行编辑。如果您的网站打开一片空白、样式丢失、程序报错很可能是您使用了未能去掉 BOM 的工具对模板文件或源

31、码文件进行了修改。现在几乎所有的文本编辑软件都可以显示并编辑UTF-8编码的文件。但是很遗憾,其中很多软件的表现并 不理想。类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三 个不可见的字符(OxEF 0xBB OxBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文 件是否以 UTF-8 编码。对于一般的文件,这样并不会产生什么麻烦。但对于 PHP 来说, BOM 是个大麻 烦。PHP并不会忽略BOM,所以在读取、包含或者引用这些文件时,会把BOM作为该文件开头正文的一部分。 根据嵌入式语言的特点,这串字符将被直接执行(显示)出

32、来。由此造成即使页面的 top padding 设置为 0,也无法让整个网页紧贴浏览器顶部,因为在html 一开头有这3个字符呢!最大的麻烦还不是这个。受COOKIE送出机制的限制,在这些文件开头已经有BOM的文件中,COOKIE 无法送出(因为在COOKIE送出前PHP已经送出了文件头),所以登入和登出功能失效。一切依赖COOKIE、 SESSION 实现的功能全部无效。因此,在编辑、更改任何文本文件时,请务必使用不会乱加BOM的编辑器。Linux下的编辑器应该都没有 这个问题。 WINDOWS 下,请勿使用记事本等编辑器。推荐的编辑器是: Editplus 2.12 版本以上; EmEdi

33、tor; UltraEdit (需要取消添加BOM的相关选项);Dreamweaver (需要取消添加BOM的相关选 项)等。对于已经添加了 BOM的文件,要取消的话,可以用以上编辑器另存一次(Editplus需要先另存为gb,再 另存为UTF-8。)在Dreamweaver里可以修改,去掉Unicode签名(BOM)点菜单栏里的修改 - 页面属性,或直接按 Ctrl+J 快捷键。16、自定义模型的文章,新增编辑时不显示自定义字 段!?最近给客户做一个单,在本地调试好了,全站+数据库发给客户,结果客户说后台编辑的时候只能编辑标题、作者、栏目那些内容,但是其它自定义的字段内容,统统看不到百思不得

34、其解,于是一步步跟踪代码执行,对照看本地,看是哪一个地方出现问题:首先,对于自定义模型,DEDE后台是在模板里用?php PrintAutoFieldsAdd($clnfosfieldset); ?来 处理其自定义模型的字段的,于是我们查找PrintAutoFieldsAdd函数,可以找到在dede/inc/inc_archives _functi*.php 里定义的;然后,进一步调试,发现问题出在GetFormItem()函数里,这个函数没有返回应有的表单内容,于是继 续查找,发现它在 include/customfields.func.php 里定义的;再接下来,进一步调试,发现问题出在G

35、etSysTemplets()函数里,它没有能读取到相应模板文件的内 容,于是查到它在 include/common.func.php 里进行定义;然后在该函数里,用die()输入模板所在路径,发现一个问题,在本地测试这个路径是对的,而在客户的 环境里,输出的路径是错误的,于是找不到这个模板,就不能得到想要内容!稍微再想了一下,恍然大悟,原来我在本地是有众多网站,所以DEDE安装不在根目录下,而客户则是 安装在根目录下!于是找到后台“系统基本参数”里的“DedeCMS安装目录:”一看,原来客户也意识到这个问题,把这一 项改为了“/”来表示根目录,但是就是这个设置导致了上述问题,如果安装在根目录

36、,应该“DedeCMS安装 目录: ”设置为空即可!17、使用国外主机导入CSV文件不能读取其中的中文?最近给客户做一个单,在本地调试好了,发给客户在客户的本地也调试好,但是上传到国外主机之后, 发现一个导入CSV的功能不正常,CSV里英文可以导入,但是中文部分却全部导入为空上网查找了一些相关资料后,发现原来是PHP的fgetcsv函数对环境依赖很大,在国外主机就很容易读 取了中文,解决办法也很简单:在使用该函数的页面的第一行,增加这么一句: setlocale(LC_ALL, zh_C N);18、注意JS定义script 里的v!-!这两晚给一个客户做个单子,其中一个要求是在一个动态页里调

37、用评论。于是我把模板里相关评论的各种代码,包括 JS、CSS、html 代码等,都复制到动态页里了,但是奇怪的现象出现了:评论代码一加,整个页面就乱了,原来显示的内容都不出现了,仅仅出来评论框的一小部分。查看页面源代码,也没有看出什么问题,各种路径都是对的。后来发现加了一段代码,就可以显示了复制代码1._3. _百思不得其解,反正来来回回调整了解决两个晚上,后来发现重点就是复制代码2“3.不能删除!心里想算了,反正都能显示,虽然还有个 JS 错误,但是也只能暂时这样吧。最后准备打包文件给客户心想最后看一把代码吧,有些多余就删掉,突然眼角看到页面顶头的这个东东:复制代码1._3. !-4. fu

38、nction CheckLogin()7.&其中这个!-让我灵光一闪,我往下找了一下,发现在/script结束前,竟然没有-进行配对原来,困扰我两个晚上的问题,竟然是js定义里的!-不配对,而源头就是我复制代码时候,漏掉了_I厂 1小小纰漏,竟然让一个两小时可以完成的东西,活生生做了七八小时,耗费了大量脑汁!不知道各位有没有什么方法,可以防止这些细微的格式缺漏,而不是靠IE来调试?这种我遇到过,我用ff调试的,不知道现在的版本是否支持,是这样的,假如注释不配对,ff3.5中就不显示注释标记起始后面的所有内容,这样做很容易就找到问题所在了,呵呵标签dede:arclist的排序是通过orderb

39、y来指定的,如下: dede:arclist orderby=排序字段/dede:arclistorderby=sortrank文档排序方式 orderby=hot或 orderby=click表示按点击数排列 orderby=sortrank或 orderby=pubdate按出版时间排列 orderby=near orderby=lastpost按最后评论时间 orderby=scores按得分排序 orderby=id按文章ID排序dede:arclist 标签按自定义字段排序 orderby=rand 随机获得指定条件的文档列表而能给 orderby 赋值的只能是上面列出的值,也就是说

40、 dede:arclist 标签只能按照上面列出的字段排序 那怎样才能按照自定义的字段排序呢?假如我现在在dede_archives表里面添加了一个字段NewField, 我想按照这个字段排序。直接这样写:dede:arclist orderby=NewField 是不行的。那应该怎样修改? 修改文件 ,参考附件 arc.listview.class.php(版本 5.5utf8),修改如下:1、在第 560 行至 562 行处添加如下代码:else if($orderby=NewField) $ordersql = order by arc.NewField $orderWay;2、修改 6

41、03 行代码,修改如下:if(ereg(hot|click|lastpost|NewField,$orderby)上面的修改在5.5utf8版本通过,其他版本类似。在此要感谢版主nichelous的指导,人品和技术都很好!常用正则表达式平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用:非负整数(正整数+ 0)人0-9*1-90-9*$正整数U(-d+)|(0+)$非正整数(负整数+ 0)心0-9*1-90-9*$负整数A-?d+$整数Ad+(.d+)?$非负浮点数(正浮点数+ 0)人(0-9+.0-9*1-90-9*)|(0-9*1-90-9*.0-9+)|(0-9*

42、1-90-9*)$正浮点数A(-d+(.d+)?)|(0+(.0+)?)$非正浮点数(负浮点数 + 0)人(-(0-9+.0-9*1-90-9*)|(0-9*1-90-9*.0-9+)|(0-9*1-90-9*)$负浮点数A(-?d+)(.d+)?$浮点数A-Za-z+$由26个英文字母组成的字符串AA-Z+$由26个英文字母的大写组成的字符串a-z+$由26个英文字母的小写组成的字符串A-Za-z0-9+$由数字和26个英文字母组成的字符串Aw+$由数字、26个英文字母或者下划线组成的字符串Aa-zA-z+:/(w+(-w+)*)(.(w+(-w+)*)*(?S*)?$url(d2|d4)-

43、(0(1-91)|(11|2)-(0-2(1-91)|(30|1)$/ / 年-月-日(0(1-91)|(11|2)/(0-2(1-91)|(30|1)/(d2|d4)$/ / 月/日/年A(w-.+)(0-91,3.0-91,3.0-91,3.)|(w-+.)+)(a-zA-Z2,4|0-91,3)(?)$ /Emil/人(+?0-92,4-0-93,4-)|(0-93,4-)?(0-97,8)(-0-9+)?$/电话号码A(d1,2|1dd|20-4d|250-5).(d1,2|1dd|20-4d|250-5).(d1,2|1dd|20-4d|250-5).(d1,2|1dd|20-4d|

44、250-5)$ /IP 地址匹配中文字符的正则表达式: u4e00-u9fa5匹配双字节字符(包括汉字在内):FxOO-xff匹配空行的正则表达式: ns| *r匹配HTML标记的正则表达式:/.*|/匹配首尾空格的正则表达式:(as*)|(s*$)匹配 Email 地址的正则表达式: w+(-+.w+)*w+(-.w+)*.w+(-.w+)*匹配网址 URL 的正则表达式:Aa-zA-z+:/(w+(-w+)*)(.(w+(-w+)*)*(?S*)?$匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):Aa-zA-Za-zA-Z0-94,15$ 匹配国内电话号码: (d3-|

45、d4-)?(d8|d7)?匹配腾讯 QQ 号:人1-9*1-90-9*$元字符及其在正则表达式上下文中的行为: 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。人匹配输入字符串的开始位置。如果设置了 RegExp对象的Multiline属性,人也匹配n或r之后的 位置。$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的 Multiline 属性, $ 也匹配 n 或 r 之前的位置。* 匹配前面的子表达式零次或多次。+ 匹配前面的子表达式一次或多次。+ 等价于 1,。匹配前面的子表达式零次或一次。? 等价于 0,1。n n 是一个非负整数,匹配确

46、定的 n 次。n, n 是一个非负整数,至少匹配 n 次。n,m m和n均为非负整数,其中n = m。最少匹配n次且最多匹配m次。在逗号和两个数之间不 能有空格。当该字符紧跟在任何一个其他限制符 (*, +, ?, n, n, n,m) 后面时,匹配模式是非贪婪的。非贪婪 模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。. 匹配除 n 之外的任何单个字符。要匹配包括 n 在内的任何字符,请使用象 .n 的模式。(pattern) 匹配 pattern 并获取这一匹配。(?:pattern) 匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不

47、进行存储供以后使用。(?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就 是说,该匹配不需要获取供以后使用。(?!pattern)负向预查,与(?=pattern)作用相反 x|y 匹配 x 或 y。xyz 字符集合。fxyz负值字符集合。a-z 字符范围,匹配指定范围内的任意字符。Fa-z负值字符范围,匹配任何不在指定范围内的任意字符。b 匹配一个单词边界,也就是指单词和空格间的位置。B 匹配非单词边界。cx匹配由x指明的控制字符。d 匹配一个数字字符。等价于 0-9。D匹配一个非数字字符。等价于S-9。f 匹配一个换页符。等价

48、于 x0c 和 cL。n 匹配一个换行符。等价于 x0a 和 cJ。r 匹配一个回车符。等价于 x0d 和 cM。s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 fnrtv。S匹配任何非空白字符。等价于F fnrtv。t 匹配一个制表符。等价于 x09 和 cI。v 匹配一个垂直制表符。等价于 x0b 和 cK。w匹配包括下划线的任何单词字符。等价于A-Za-z0-9_。W匹配任何非单词字符。等价于FA-Za-zO-9。xn匹配n,其中n为十六进制转义值。十六进制转义值必须为确定的两个数字长。num匹配num,其中num是一个正整数。对所获取的匹配的引用。n 标识一个八进制转义值或

49、一个后向引用。如果 n 之前至少 n 个获取的子表达式,则 n 为后向引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。nm标识一个八进制转义值或一个后向引用。如果nm之前至少有is preceded by at least nm个获取 得子表达式,则 nm 为后向引用。如果 nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的后向引 用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 nm 将匹配八进制转义值 nm。nml 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。un

50、匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。匹配中文字符的正则表达式: u4e00-u9fa5匹配双字节字符(包括汉字在内):FxOO-xff匹配空行的正则表达式: ns| *r匹配 HTML 标记的正则表达式:/.*|/匹配首尾空格的正则表达式:(As*)|(s*$)匹配 Email 地址的正则表达式:w+(-+.w+)*w+(-.w+)*.w+(-.w+)*匹配网址 URL 的正则表达式: http:/(w-+.)+w-+(/w- ./?%&=*)?利用正则表达式限制网页表单里的文本框输入内容:用正则表达式限制只能输入中文:onkeyup=value=value.rep

51、lace(/Fu4E00-u9FA5/g,)onbeforepaste=clipboardData.setData(text,clipboardData.getData(text).replace(/Au4E00-u9FA5/g,)用正则表达式限制只能输入全角字符:onkeyup=value=value.replace(/FuFFOO-uFFFF/g,)onbeforepaste=clipboardData.setData(text,clipboardData.getData(text).replace(/AuFFOO-uFFFF/g,)用正则表达式限制只能输入数字:onkeyup=value

52、=value.replace(/Fd/g,)onbeforepaste=clipboardData.setData(text,clipboardData.getData(text).replace(/Ad/g,)用正则表达式限制只能输入数字和英文: onkeyup=value=value.replace(/W/g,)onbeforepaste=clipboardData.setData(text,clipboardData.getData(text).replace(/Ad/g,)=常用正则式匹配中文字符的正则表达式: u4e00-u9fa5匹配双字节字符(包括汉字在内):FxOO-xff匹配

53、空行的正则表达式:n*r匹配 HTML 标记的正则表达式:/.*|/匹配首尾空格的正则表达式:(as*)|(s*$)匹配 IP 地址的正则表达式: /(d+).(d+).(d+).(d+)/g /匹配 Email 地址的正则表达式: w+(-+.w+)*w+(-.w+)*.w+(-.w+)*匹配网址 URL 的正则表达式:http:/(/w-+.)+w-+(/w- ./?%&=*)?sql 语句:A(select|drop|delete|create|update|insert).*$1、非负整数:id+$2、正整数:人0-9*1-90-9*$3、非正整数:U(-d+)|(O+)$4、负整数:

54、人-0-9*1-90-9*$5、整数:5d+$6、非负浮点数:Ad+(.d+)?$7、正浮点数:人(0-9)+.0-9*1-90-9*)|(0-9*1-90-9*.0-9+)|(0-9*1-90-9*)$8、非正浮点数:A(-d+.d+)?)|(O+(.O+)?)$9、负浮点数:人(-(正浮点数正则式)$10、英文字符串:AA-Za-z+$11、英文大写串:护辺+$12、英文小写串:Aa-z+$13、英文字符数字串:AA-Za-z0-9+$14、英数字加下划线串:aw+$15、E-mail 地址:Aw-+(.w-+)*w-+(.w-+)+$16、URL: Aa-zA-Z+:/(w+(-w+)*

55、)(.(w+(-w+)*)*(?s*)?$或:Ahttp:WA-Za-z0-9+.A-Za-z0-9+V=?%-&_:+!*(A)*$17、邮政编码:A1-9d5$18、中文:Au0391-uFFE5+$19、电话号码:A(d2,3)|(d3-)?(0d2,3)|0d2,3-)?1-9d6,7(-d1,4)?$20、手机号码:A(d2,3)|(d3-)?13d9$21、双字节字符(包括汉字在内):ix00-xff22、2324252627282930313233343536、匹配首尾空格:(as*)|(s*$)(像vbscript那样的trim函数)匹配 HTML 标记: .*|匹配空行: n

56、s| *r提取信息中的网络链接: (h|H)(r|R)(e|E)(f|F) *= *(|)?(w|/|.)+(| *|)?提取信息中的邮件地址: w+(-+.w+)*w+(-.w+)*.w+(-.w+)*提取信息中的图片链接: (s|S)(r|R)(c|C) *= *(|)?(w|/|.)+(| *|)?提取信息中的 IP 地址: (d+).(d+).(d+).(d+)提取信息中的中国手机号码: (86)*0*13d9提取信息中的中国固定电话号码: (d3,4)|d3,4-|s)?d8提取信息中的中国电话号码(包括移动和固定电话): (d3,4)|d3,4-|s)?d7,14提取信息中的中国邮

57、政编码: 1-91(d+)5提取信息中的浮点数(即小数): (-?d*).?d+提取信息中的任何数字 : (-?d*)(.d+)?IP: (d+).(d+).(d+).(d+)电话区号:0d2,3$/37、腾讯 QQ 号:人1-9*1-90-9*$38、帐号(字母开头,允许5-16字节,允许字母数字下划线):Aa-zA-Za-zA-Z0-94,15$39、中文、英文、数字及下划线:Au4e00-u9fa5_a-zA-Z0-9+$dede:field name=array /的简单用法示范官方的解释: field 支持用 array 获取任意字段的值;(支持标记:文章列表模板的 dede:fie

58、ld name=array /、 arclist、 arclistsg、 loop、 sql 标签)通俗点来讲,这就是查询数据库得到的一组数据的集合例如平时使用dede:field name=title /就可以使用dede:field name=array runphp=yes me=metitle;/dede:field最主要是,很多时候,有些人的 php 标签需要同时处理两个或以上字段参数的,用这个就相当方便! 例如需要有短标题就显示短标题、没有短标题就显示长标题:dede:field name=array runphp=yes if (meshorttitle=) me=metitle;else me=mes horttitle;/dede:field1 DEDE 的使用最多的标签技巧详解1 DEDE的使用最多的标签技巧详解dede:arclist typeid= row= col= titlelen= infolen=imgwidth= imgheight= listtype= orderby= keyword=主要使用在FLASH以及中,是了了去除标签 中的HTML元素,比如b/b等,如果不使用 此标签,则会导致H

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!