Nginx二级域名自动匹配到子文件夹(通过rewrite)

server_name www.test.com bbs.test.com blog.test.com;
index index.html index.htm index.php;
root /www/test.com;



#申明sub_domain变量
set $sub_domain "";
#正则提取出二级域名
if ($http_host ~ "(.+).test.com$") {
    #把二级域名赋值给sub_domain变量
    set $sub_domain $1;
}

if ($sub_domain = "www") {
    set $sub_domain "";
}

if ($sub_domain = "bbs") {
    rewrite /(.+) /$sub_domain/$1 last;
}

if ($sub_domain = "blog") {
    #设置rewrite规则
    rewrite ^(.*)$ /$sub_domain/index.php?s=$1 last;
}

Discuz!二次开发必备知识——DZ程序变量

Discuz!二次开发必备知识——DZ程序变量

变量名称
[A]字母组
$action操作
$adminid管理级别
$adminemailconfigincphp里面设置的那个
$adminid管理组id(1管理员2超版3普版-1特殊)
$adminpaccess不详
$allowanonymous是否允许匿名
$allowavatar是否允许使用头像
$allowbanip是否允许ban ip
$allowbanuser是否允许ban用户
$allowviewip是否允许查看IP
$allowgetattach是否允许下载附件
$allowpostannounce是否允许发公告
$allowcensorword是否允许设置词语过滤(主观臆测)
$allow反正就是权限的全局变量,等回在整理
$attahdir附件上传目录(绝对)
$attachextsions允许的附件扩展名(应该是)
$attachimgpost帖子中是否显示图片附件
$attachrefcheck下载附件是否来路检查
$attachsave附件保存方式
$attachurl附件上传目录(相对)
$attackevasiveconfigincphp中设置,防DDOS攻击设置,详细见该文件
$avatarshow_license天下秀license
$avatarshowdefault系统管理中显示默认形象设置
$avatarshowheight系统管理中头像最大高度
$avatarshowwidth系统管理的头像宽度
$avatarshowid用户头像所对应用户的 UID
$archiverstatus启用 Archiver
$attachrefcheck下载附件来路检查
$avatarshowstatus关闭天下秀
$allowvisit允许访问
$allowpost允许发帖
$allowreply允许回复
$allowpostpoll允许发投票
$allowdirectpost允许直接发帖
$allowgetattach允许查看附件
$allowpostattach允许上传附件
$allowvote允许投票
$allowmultigroups允许加入/离开公众用户组
$allowsearch允许搜索
$allowavatar允许使用头像
$allowcstatus允许使用自定义头衔
$allowuseblog允许使用BLOG
$allowinvisible允许隐身
$allowtransfer允许积分转账
$allowsetreadperm允许设置帖子阅读权限
$allowsetattachperm允许设置附件阅读权限
$allowhidecode允许使用HIDE
$allowhtml允许使用HTML
$allowcusbbcode允许使用自定义BBCODE
$allowanonymous允许匿名
$allownickname 允许用昵称
$allowsigbbcode允许签名用BBCODE
$allowsigimgcode允许签名用IMG
$allowviewpro允许看个人信息
$allowviewstats允许看统计
$attachextensions附件允许拓展名
$adminemail论坛系统 Email
$attachdir附件保存位置
$attachurl附件路径 URL 地址
$attackevasive防护大量正常请求造成的拒绝服务攻击

[B]字母组
$bbname论坛名
$boardurl论坛地址
{$boardurl}forumdisplay?fid=$fid版块地址
{$boardurl}viewthreadphp?tid=$tid帖子地址
$bdaystatus发送生日邮件
$bannedmessages禁言是否显示“该用户已经被屏蔽”的信息
$bbclosed是否关闭论坛
$bbinsert是否用BBCODE代码
$bbrules论坛规则
$bbrulestxt论坛规则是否允许使用HTML
$boardlicensed显示论坛授权信息

[C]字母组
$credits积分
$censoremail启用EMAIL审核
$censoruser启用用户审核
$closedreason论坛关闭显示的信息
$creditsformula积分公式
$creditsformulaexp还是公式?
$creditsnotify启用的拓展积分
$creditspolicy积分策略
$creditstax积分交易手续费比率
$creditstrans交易积分设置
$custombackup?未知
$cookiedomaincookie 作用域
$cookiepathcookie 作用路径

[D]字母组
$db数据库操作类
$discuz_user $discuz_userss当前用户名
$discuz_uid当前uid
$discuz_pw当前用户密码的 MD5
$discuz_secques当前用户安全提问信息
$dateformat用户的日期格式
$delayviewcount点击数延迟更新
$debug显示程序运行信息
$dotfolders本人发起或回复的主题显示加点图标
$dupkarmarate允许重复评分
$digest精华
$dotfolders是否将当前用户的主题加点
$delayviewcount浏览延迟
$deletereason删除理由
$doublee允许同一 Email 注册不同用户
$dupkarmarate允许重复评分
$dbhost数据库服务器
$dbuser数据库用户名
$dbpw数据库密码
$dbname数据库名
$dbreport是否发送数据库错误报告
$databaseMySQL 版本设置
$dbcharsetMySQL 字符集

[E]字母组
$extcredits扩展积分信息(array)
$extcredits拓展积分
$exchangemincredits兑换最低余额
$edittimelimit编辑帖子限制时间
$editedby显示最后编辑信息
$errorreport是否报告 PHP 错误

[F]字母组
$forum[name]版块名字
$fastpost快速发帖
$fullmytopics我的话题全文搜索
$forumjump显示论坛跳转菜单
$floodctrl发帖灌水预防(秒)
$fastpost显示快速发表
$forcesecques管理人员必须设置安全提问才能进入系统设置

[G]字母组
$gzipcompress页面 Gzip 压缩
$globalstick启用全局置顶
$groupid用户组ID

[H]字母组
$hideprivate隐藏无权访问的论坛
$hottopic热门主题帖数
$hideprivate隐藏无权访问的论坛
$headercharset强制设置字符集,只乱码时使用

[I]字母组
$ipaccessIP允许访问后台权限
$ipregctrlIP注册控制

[J]字母组
$jscachelifeJS数据缓存时间(秒)
$jsrefdomainsJS来路限制
$jsstatus启用JS

[K]字母组
$keyword关键字
$karmaratelimit评分时间限制(小时):

[L]字母组
$loadctrl系统负载控制
$losslessdel删帖不减积分最大天数
$loadctrl负载控制

[N]字母组
$navtitle标题
$navigation描述
$nocacheheaders禁止浏览器缓冲
$newgroupid新用户组别
$newsletter?未知
$newbiespan新手见习时间

[M]字母组
$memberperpage每页显示会员数
$modworkstatus论坛管理工作统计
$maxonlines最大在线人数
$maxspm60秒最大搜索次数
$maxsearchresults最大搜索结果
$maxsmilies最大单一 Smilies解析次数
$membermaxpages用户列表最大页数
$memliststatus允许查看会员列表
$maxbdays首页显示生日
$modworkstatus启用管理统计
$modreasons管理理由
$modratelimit版主评分限制
$moddisplay版主显示方式
$minpostsize最小字数
$memliststatus启用会员列表查看
$memberperpage会员列表每页显示会员
$membermaxpages会员列表最大页数
$maxthreadads主题广告最大数目
$maxspm60 秒最大搜索次数
$maxsmilies同一SMILES最大解析数
$maxsigrows最大签名高度
$maxsearchresults最大搜索结果
$maxpostsize帖子最大字数
$maxpolloptions投票最大选项数
$maxonlines最大在线人数
$maxmodworksmonths管理记录保留最长时间
$maxincperthread单主题最高收入
$maxchargespan单主题最高出售时限(小时):
$maxprice最大售价
$maxattachsize最大附件尺寸
$maxsizeperday一天最大附件尺寸
$maxpmnum最大购买天数

[O]字母组
$onlineip用户 IP
$oltimespan用户在线时间更新时长(分钟)
$onlinehold在线保持时间

[P]字母组
$post[authortitle]用户组
$ppp每页显示贴数
$posts帖数
$postperday平均每日的发帖
$pconnect数据库持久连接

[R]字母组
$rssstatus启用 RSS
$rewritestatusURL 静态化
$regfloodctrl24 小时注册尝试次数限制
$reportpost允许向版主报告帖子
$readaccess关系到阅读权限
$rewritestatus静态启用规律
$reportpost启用报告
$regverify注册审核启用
$regstatus允许注册
$regfloodctrl24 小时注册尝试次数限制
$regctrlIP 注册间隔限制(小时)
$reasonpmPM强制理由
$raterange评分范围

[S]字母组
$styleid当前风格的 ID
$stylejump显示风格下拉菜单
$sessionexists是否更新 sessions
$statstatus使用论坛流量统计
$statscachelife统计系统缓存时间
$seccodestatus启用验证码(安全)
$searchctrl搜索时间限制(秒)
$subforumsindex首页显示论坛的下级子论坛
$stylejump风格跳转菜单
$statstatus启用统计
$statscachelife统计更新时间(分钟)
$starthreshold星星升级数
$smileyinsert启用 SMILES
$smcols一行显示 SMILES 个数
$showemail显示 EMAIL
$seokeywords关键字
$seodescription头部描述
$seccodestatus验证码启用
$searchctrl搜索控制时间
$searchbanperiods禁止全文搜索时间段

[T]字母组
$tablepre表前缀
$timestamp时间信息
$timeformat用户的时间格式
$timeoffset用户的时差
$thread[author]作者
$thread[dateline]时间
$thread[replies]评论次数
$thread[views]查看次数
$thread[subject]帖子名称
$tpp每页显示主题数
$threadmaxpages主题列表最大页数
$transsidstatus启用 URL 传递 sid
$transfermincredits转账最低余额
$topicperpage每页主题
$threadmaxpages主题列表最大页数
$tplrefresh模板自动刷新开关

[U]字母组
$userstatusby用户组头衔衡量标准

[V]字母组
$visitedforums显示最近访问论坛数量
$vtonlinestatus帖子中显示作者状态
$version当前的版本
$visitbanperiods禁止访问时间段

[W]字母组
$welcomemsg禁止自动向新注册用户发送欢迎短消息
$whosonlinestatus显示在线用户
$wapstatus启用 WAP
$watermarkquality水印透明度
$whosonlinestatus在线列表显示方式
$welcomemsgtxt欢迎短信息内容
$welcomemsg启用欢迎短信息
$watermarkstatus启用水印
$watermarktrans水印融合度
$waptppWAP浏览页数
$wapstatus启用WAP
$wappppWAP浏览显示主题数
$wapmpsWAP 页最大长度
$wapdateformatWAP时间格式
$wapcharsetWAP字符设定
变量名称                          名称说明
IN_DISCUZ是否在论坛里
DISCUZ_ROOT路径
CURSCRIPT某些页面自定义
FORMHASH随机串

 
变量名称                          名称说明
[_]字符组
$_DCACHE。。。。。。。。。。。。。。。。。。。。。。。。cache数组
$_DPLUGIN。。。。。。。。。。。。。。。。。。。。。。。。pluginscache数组(要预先require相关cache文件)

[A]字母组
$advlist存储广告信息(头部广告等等)

[C]字母组
$creditspolicy存储积分策略

[E]字母组
$extcredits扩展积分信息

[F]字母组
$forum看名字是存储版面信息

[G]字母组
[H]字母组
$hooks钩子

[I]字母组
[J]字母组
[K]字母组
[L]字母组
[N]字母组
[M]字母组
$modreasons管理操作时候的默认理由
$mtime精确的时间

[O]字母组
[P]字母组
$plugins前台插件列表

[Q]字母组
$qihoo_links跟qihoo有关

[R]字母组
$raterange评分功能中控制最大值和最小值

[S]字母组
[T]字母组
$timenow = array(‘timeoffset’ => ‘+8′,’time’ =>’2006-6-3006:22 PM’);好用吧
$thread[‘password’]密码

[U]字母组
[V]字母组
[W]字母组
[X]字母组
[Y]字母组
[Z]字母组

作者:$thread[author]
时间:$thread[dateline]
评论次数:$thread[replies]
查看次数:$thread[views]
用户组:$post[authortitle]
论坛名称:$bbname
论坛地址:$boardurl
版块名字:$forum[name]
版块地址:{$boardurl}forumdisplay?fid=$fid
帖子名称:$thread[subject]
帖子地址:{$boardurl}viewthreadphp?tid=$tid

 
变量:
$bbname 论坛名
$boardurl 论坛地址
$styleid 当前风格的id
$extcredits 扩展积分信息(array)
$version D4的版本
$tablepre 表前缀
$timestamp 时间信息(那个字真的不懂怎么拼, 所以不懂写)
$onlineip 用户ip
$db 数据库操作类
$discuz_user $discuz_userss 当前用户名
$discuz_uid 当前uid
$discuz_pw 当前用户密码的md5
$discuz_secques 当前用户安全提问信息
$sessionexists 是否更新 sessions
$dateformat 用户的日期格式
$timeformat 用户的时间格式
$timeoffset 用户的时差
$navtitle 标题
$navigation 描述
$adminid 管理级别

常量:
IN_DISCUZ 是否在论坛里
DISCUZ_ROOT 路径
CURSCRIPT 某些页面自定义
FORMHASH 随机串
数组类(看详细内容用print_r(数组名))
$_DCACHE cache数组
$_DPLUGIN plugins cache数组(要预先require相关cache文件)
$advlist 存储广告信息(头部广告等等)
$creditspolicy 存储积分策略
$extcredits 扩展积分信息
$forum 看名字是存储版面信息
$hooks 钩子
$modreasons 管理操作时候的默认理由
$mtime 精确的时间
$plugins 前台插件列表
$qihoo_links跟qihoo有关(废话),具体不知道(无数臭鸡蛋飞来)
$raterange 不知道……
$timenow = array(‘timeoffset’ => ‘+8′,’time’ =>’2006-6-3006:22 PM’);好用吧
应该是全了,剩下还有的什么$_SERVER的就不说了

变量部分
$adminemail configincphp里面设置的那个
$adminid 管理组id(1管理员2超版3普版-1特殊)
$adminpaccess 不详
$allowanonymous 是否允许匿名
$allowavatar 是否允许使用头像
$allowbanip 是否允许ban ip
$allowbanuser 是否允许ban用户
$allowcensorword 是否允许设置词语过滤(主管臆测)
$allow反正就是权限的全局变量,等回在整理
$attahdir 附件上传目录(绝对)
$attachextsions允许的附件扩展名(应该是,我的这个值是chm,pdf,zip,rar,tar,gz,bzip2,gif,jpg,jpeg,png)
$attachimgpost 帖子中是否显示图片附件
$attachrefcheck 下载附件是否来路检查
$attachsave 附件保存方式
$attachurl 附件上传目录(相对)
$attackevasiveconfigincphp中设置,放DDOS攻击设置,详细见该文件
$authkey 不详
$avatarshow_license 天下秀license(不需要我们操心的东西)
$avatarshowdefault 系统管理中显示默认形象设置
$avatarshowheight 系统管理中头像最大高度
$avatarshowid不详,

Discuz触屏版链接删除尾巴(mobile=2)的方法

现在玩手机的越来越多,DZ的手机模板地位也越来越高,DZ手机版又分触屏版和简易版。现在简易版已经毫无意义,一般说DZ的手机模板就指触屏版。

我们用来区分手机版是触屏版还是简易版等链接是通过&mobile=X来区分。所以现在基本上是&mobile=2;

那么问题就来了,带有&mobile=2的链接在PC上访问是进入misc.php?mod=mobile这个页面,有人会说这有什么关系呢?

这就得说说我们最最关心的了,搜索引擎现在也在大力发展手机方面内容,它有可能收录到带有&mobile=2的链接,那么在PC上访问到这样的链接就惨不忍睹了。

方法如下:

第一步:

找到文件/source/class/helper/helper_mobile.php中:

$content = preg_replace(“/href=\”(\w+\.php)(.*?)\”/e”, “mobilereplace(‘\\1’, ‘\\2’)”, $content);

复制代码

将其删除或者注释掉即可;

第二步:

查找文件/source/function/function_core.php中:

function dheader($string, $replace = true, $http_response_code = 0)

复制代码

将其下面的:

if(defined(‘IN_MOBILE’) && strpos($string, ‘mobile’) === false && $islocation) {

if (strpos($string, ‘?’) === false) {

$string = $string.’?mobile=’.IN_MOBILE;

} else {

if(strpos($string, ‘#’) === false) {

$string = $string.’&mobile=’.IN_MOBILE;

} else {

$str_arr = explode(‘#’, $string);

$str_arr[0] = $str_arr[0].’&mobile=’.IN_MOBILE;

$string = implode(‘#’, $str_arr);

}

}

}

复制代码

删除或者注释掉即可。

这样做之后再手机上访问和PC上访问的是同一个链接,也能正常访问手机版,需要注意的是要设置默认手机版是触屏版,相信现在没人不是这么设置。

这样修改还有一个好处就是理论上会减些轻服务器负担,提升速度虽然人难体会得到。

本文地址:http://itbyc.com/cms/discuz/18138.html
转载请注明出处。

win10 64位安装memcache扩展和开启redis扩展

下载文件

附件有memcached的安装文件和php5.2到php5.6的memcache扩展文件,php_redis.dll下载地址:http://windows.php.net/downloads/pecl/releases/redis/2.2.7/

安装扩展

解压memcached那个压缩文件到任意位置,比如说D盘datas文件夹下。找到cmd.exe(c:\windows\system32\cmd.exe),右键以管理员方式运行(否则会提示failed to install service or service already installed),输入D:回车,接着cd到memcached解压的那个文件夹下执行memcached -d install命令安装,回车,如果没有任何提示则表示安装成功,再输入memcached -d start回车,开启memcached进程,如图所示,可以在服务中看到memcached正在运行

开启扩展

将附件中php_memcache扩展解压到php安装目录下的ext文件夹中,选择好适应的版本,之前安装的php版本是php-5.5.37-Win32-VC11-x64,从phpinfo函数可以看出php版本信息,如下图,所以我选择了php5.5-ts-vc11-x64版本的php_memcache扩展,在php.ini中extension添加一条extension=php_memcache.dll,同理将下载的phpredis扩展解压到php安装目录下的ext文件夹中,在php.ini中extension添加一条extension=php_redis.dll


重启Apache服务器

打开测试文件写入phpinfo()函数,如图所示则表示扩展安装成功。


继续编辑测试文件 输入如下代码

<?php  
    //phpinfo();
    $memcache = new Memcache();  
    $memcache->connect('127.0.0.1', 11211 ) or die ( "Could not connect Memcached server!" );    
    $memcache->set( 'Memcache', "hello Memcache!<br/>");  
    echo $memcache->get('Memcache'); 
    echo "<br>";
    $redis = new Redis();  
    $redis->connect("192.168.1.103","6379");  //php客户端设置的ip及端口  
    //存储一个值  
    $redis->set("say","Hello redis ");  
    echo $redis->get("say");     //Hello redis 
?> 

输出hello Memcache!配置成功!
附件:
http://files.cnblogs.com/files/weblm/memcached%E6%89%A9%E5%B1%95.rar

转载:http://www.cnblogs.com/weblm/p/5793030.html#_labelTop

discuz3.x后台【管理中心】->【全局】设置中表单名汇总

1. 1、后台首页:
2. http://localhost/discuz/admin.php?action=index
3. http://localhost/discuz/admin.php
4.
5. 2、后台-》全局 中设置的信息都存放在settingnew[]数组中,格式如下,网站名称 :settingnew[sitename]
6.
7. 站点信息:
8. 站点名称: settingnew[bbname]
9. 网站名称: settingnew[sitename]
10. 网站URL: settingnew[siteurl]
11. 管理员邮箱: settingnew[adminemail]
12. QQ在线客服号码: settingnew[site_qq]
13. 网站备案信息: settingnew[icp]
14. 是否显示授权信息链接: settingnew[boardlicensed]
15. 网站第三方统计代码: settingnew[statcode]
16. 是否关闭站点: settingnew[bbclosed]
17.
18. 注册与访问控制:
19. 注册:
20. 允许新用户注册:settingnew[regstatus][]
21. 关闭注册提示信息:settingnew[regclosemessage]
22. 注册地址:settingnew[regname] 默认值为 register
23. 通过邮件发送注册链接:settingnew[sendregisterurl]
24. 取消注册邮箱必填:settingnew[forgeemail]
25. 注册链接文字:settingnew[reglinkname] 默认值 “立即注册”
26. 用户信息保留关键字:settingnew[censoruser]
27. 密码最小长度:settingnew[pwlength]
28. 强制密码的复杂度:settingnew[strongpw][]
29. 新用户注册验证:settingnew[regverify]
30. 注册邮箱域名限制:settingnew[regmaildomain]
31. 同一IP注册间隔限制:settingnew[regctrl]
32. 同一IP在24小时允许注册的最大次数:settingnew[regfloodctrl]
33. 限时注册IP注册间隔限制:settingnew[ipregctrltime]
34. 限时注册的IP列表:settingnew[ipregctrl]
35. 发送欢迎信息:settingnew[welcomemsg][]
36. 欢迎信息标题:settingnew[welcomemsgtitle]
37. 欢迎信息内容:settingnew[welcomemsgtxt]
38. 显示网站服务条款:settingnew[bbrules]
39. 访问控制:
40. 新手见习期限:settingnew[newbiespan]
41. 允许访问站点的IP列表:settingnew[ipaccess]
42. 允许访问管理中心的IP列表:settingnew[adminipaccess]
43. 允许发表的域名列表:settingnew[domainwhitelist]
44.
45. 站点功能:
46. 功能模块:门户、群组、广播、淘帖、导读、动态、日志、相册、分享、记录、留言板、排行榜
47. 管理相关:
48. 开启站点趋势统计:settingnew[updatestat]
49. 开启论坛管理工作统计:settingnew[modworkstatus]
50. 开启论坛 Archiver 功能:settingnew[archiver] 将内容模拟成静态页
51. 禁止用户访问 Archiver:settingnew[archiverredirect]
52. 管理记录保留时间:settingnew[maxmodworksmonths]
53. 删帖不减积分时间期限:settingnew[losslessdel]
54. 管理操作理由选项:settingnew[modreasons]
55. 用户评分理由选项:settingnew[userreasons]
56. 隐藏敏感帖子内容:settingnew[bannedmessages][1]
57. 用户被警告多少次自动禁言:settingnew[warninglimit]
58. 警告有效期:settingnew[warningexpiration]
59. 悬赏主题有效期:settingnew[rewardexpiration]
60. 版主面板显示审核数目:settingnew[moddetail]
61. 主题热度:
62. 用户热度值周期:settingnew[heatthread][period]
63. 热门主题显示级别:settingnew[heatthread][iconlevels]
64. 主题评价:
65. 启用主题评价:settingnew[recommendthread][status]
66. 帖子点评:
67. 点评方式:settingnew[allowpostcomment][]
68. 点评条目数:settingnew[commentnumber]
69. 允许点评自己的帖子:settingnew[commentpostself]
70. 导读设置:
71. 热度值聚合下限:settingnew[heatthread][guidelimit]
72. 热帖聚合时间范围:settingnew[guide][hotdt]
73. 精华聚合时间范围:settingnew[guide][digestdt]
74. 活动主题:
75. 内置类别:settingnew[activitytype]
76. 活动发起者可选的必填资料项:settingnew[activityfield][realname]
77. 扩展资料项数量:settingnew[activityextnum]
78. 使用积分:settingnew[activitycredit]
79. 列表用户数:settingnew[activitypp]
80. 帖子阅读:
81. 启用回帖投票:settingnew[repliesrank]
82. 启用用户黑名单隐藏:settingnew[threadblacklist]
83. 推荐回复数:settingnew[threadhotreplies]
84. 水贴字数:settingnew[threadfilternum]
85. 推荐回复时推荐非水帖:settingnew[nofilteredpost]
86. 启用隐藏水贴:settingnew[hidefilteredpost]
87. 水贴不能参与回帖投票:settingnew[filterednovote]
88. 其他:
89. 启用登陆密码加密:settingnew[pwdsafety]
90. 启用uid登陆:settingnew[uidlogin]
91. 启用登陆自动选择账号:settingnew[autoidselect]
92. 启用RSS:settingnew[rssstatus]
93. 用户在线时间更新时长:settingnew[oltimespan]
94. 显示程序的运行信息:settingnew[debug]
95. 全站是否默认只接受好友短消息:settingnew[onlyacceptfriendpm]
96. 接受短消息举报人:settingnew[pmreportuser]
97. 发帖时可@任何人:settingnew[at_anyone]
98. 群聊消息内容自动刷新间隔(秒):settingnew[chatpmrefreshtime]
99. 淘贴专辑允许共同维护的人数:settingnew[collectionteamworkernum]
100. 提醒添加桌面快捷的积分下限:settingnew[shortcut]
101. 关闭登陆安全提醒:settingnew[disableipnotice]
102. 开启小黑屋:settingnew[darkroom]
103. 全局签名内容:settingnew[globalsightml]
104.
105. 性能优化:
106. 论坛页面缓存设置:
107. 缓存论坛首页有效期:settingnew[cacheindexlife]
108. 缓存帖子有效期:settingnew[cachethreadlife]
109. 缓存目录:settingnew[cachethreaddir] 默认值为 “data/threadcache”
110. 缓存系数:settingnew[threadcaches]
111. 请选择要设置的论坛:fids[]
112.
113. 服务器优化:
114. 是否优化更新主题的浏览量:settingnew[optimizeviews]
115. 查看数开启防刷新:settingnew[preventrefresh]
116. 附件下载量延时更新:settingnew[delayviewcount]
117. 禁止浏览器缓冲:settingnew[nocacheheaders]
118. 最大在线人数:settingnew[maxonlines]
119. 在线保持时间:settingnew[onlinehold]
120. js文件目录:settingnew[jspath] 默认 “statis/js/”
121. 开启图片延时加载:settingnew[lazyload]
122. 参与模块聚合数据条数:settingnew[blockmaxaggregationitem]
123. 模块更新时间区间:settingnew[blockcachetimerange][0]
124. 是否关闭session机制:settingnew[sessionclose]
125.
126. 内存优化:memcache 等
127.
128. SEO设置:
129. URL静态化:
130. 门户专题页
131. 门户文章页
132. 论坛主题列表页
133. 论坛主题内容页
134. 群组主题列表页
135. 用户个人主页
136. 用户日志内容页
137. 论坛 Archiver 页
138. 门户、论坛、家园、群组、其他:
139. 首页: :title、description、keywords
140. 文章列表:title、description、keywords
141. 文章内容:title、description、keywords
142.
143. 空间设置:
144. 基本设置:
145. 动态保留天数:settingnew[feedday]
146. 首页动态显示数:settingnew[feedmaxnum]
147. 热点推荐的最小热度值:settingnew[feedhotday]
148. 动态链接新窗口打开:settingnew[feedtargetblank]
149. 首页动态默认标签设置:settingnew[showallfriendnum]
150. 首页显示热点的数目:settingnew[feedhotnum]
151. 列表最大分页数:settingnew[maxpage]
152. 邮件通知更新天数:settingnew[sendmailday]
153. 开启日志回收站:settingnew[blogrecyclebin]
154. 好友用户组个数:settingnew[friendgroupnum]
155. 空间投票贴默认版块:settingnew[pollforumid]
156. 空间悬赏贴默认版块:settingnew[rewardforumid]
157. 空间活动贴默认版块:settingnew[activityforumid]
158. 空间辩论帖默认版块:settingnew[debateforumid]
159. 默认记录提示内容:settingnew[defaultdoing]
160. 隐私设置:
161. 个人空间首页:settingnew[privacy][view][index]
162. 好友列表:settingnew[privacy][view][friend]
163. 留言板:settingnew[privacy][view][wall]
164. 动态:settingnew[privacy][view][home]
165. 记录:settingnew[privacy][view][doing]
166. 日志:settingnew[privacy][view][blog]
167. 相册:settingnew[privacy][view][album]
168. 分享:settingnew[privacy][view][share]
169. 默认动态发布设置:settingnew[privacy][feed][doing]
170.
171. 用户权限:
172. 允许查看用户的主题和帖子:settingnew[allowviewuserthread][allow]
173. 是否提示用户自己有未审核的主题或者帖子:settingnew[allowmoderatingthread]
174. 允许查看会员列表:settingnew[memliststatus]
175. 帖子最小字数:settingnew[minpostsize]
176. 手机客户端发帖最小字数:settingnew[minpostsize_mobile]
177. 帖子最大字数:settingnew[maxpostsize]
178. 允许用户随时编辑的帖子类型:settingnew[alloweditpost][1]
179. 启用帖子补充功能:settingnew[postappend]
180. 投票最大选项数:settingnew[maxpolloptions]
181. 编辑帖子附加编辑记录:settingnew[editedby]
182. 评分时间限制:settingnew[karmaratelimit]
183. 版主评分限制:settingnew[modratelimit]
184. 允许重复评分:settingnew[dupkarmarate]
185. 允许用户编辑帖子时删除帖子:settingnew[editperdel]
186. 帖子中[hide]标签最大有效天数:settingnew[hideexpiration]
187.
188. 防灌水设置:
189. 防灌水基本设置:
190. 两次发表时间间隔:settingnew[floodctrl]
191. 强制用户验证激活邮箱:settingnew[need_email]
192. 强制用户上传头像:settingnew[need_avatar]
193. 强制用户好友个数:settingnew[need_friendnum]
194. 验证码设置:
195. 启用验证码:settingnew[seccodestatus][1] ,如:在用户注册时启用验证码
196. 验证码发帖限制:settingnew[seccodedata][minposts]
197. 验证码类型:settingnew[seccodedata][type]
198. 验证码图片宽度:settingnew[seccodedata][width]
199. 验证码图片高度:settingnew[seccodedata][height]
200. 图片打散:settingnew[seccodedata][scatter]
201. 随机图片背景:settingnew[seccodedata][background] 选择“是”将随机使用 static/image/seccode/background/ 目录下的 JPG 图片作为验证码的背景图片,选择“否”将使用随机的背景色
202. 随机背景图形:settingnew[seccodedata][adulterate]
203. 随机TTF字体:settingnew[seccodedata][ttf]
204. 随机倾斜度:settingnew[seccodedata][angle]
205. 随机扭曲:settingnew[seccodedata][warping]
206. 随机颜色:settingnew[seccodedata][color]
207. 随机大小:settingnew[seccodedata][size]
208. 文字阴影:settingnew[seccodedata][shadow]
209. GIF动画:settingnew[seccodedata][animator]
210. 验证问答设置:
211. 启用验证问答设置:settingnew[secqaa][status][1]
212. 验证问答发帖限制:settingnew[secqaa][minposts]
213. 验证问题及答案设置:newquestion[] newanswer[]
214. 提示:系统验证问答位于 source/class/secqaa/ 目录中,插件验证问答位于 source/plugin/插件目录/secqaa/ 目录中
215. 注册表单名称设置:
216. 用户名表单设置:settingnew[reginput][username]
217. 密码表单设置:settingnew[reginput][password]
218. 重复密码表单设置:settingnew[reginput][password2]
219. email表单设置:settingnew[reginput][email]
220.
221. 发帖时间段设置:
222. 禁止发帖时间段:settingnew[postbanperiods]
223. 发帖审核时间段:settingnew[postmodperiods]
224. 发帖不受时间限制的地区列表:settingnew[postignorearea]
225. 发帖不受时间限制的IP列表:settingnew[postignoreip]
226. 时间设置:
227. 日期和时间格式:
228. 默认日期格式:settingnew[dateformat]
229. 默认时间格式:settingnew[timeformat]
230. 默认时差:settingnew[timeoffset]
231. 时间段设置:
232. 禁止访问时间段:settingnew[visitbanperiods]
233. 禁止下载附件时间段:settingnew[attachbanperiods]
234. 禁止全文搜索时间段:settingnew[searchbanperiods]
235. 上传设置:
236. 基本设置:
237. 本地附件保存位置:settingnew[attachdir] ./data/attachment
238. 本地附件URL地址:settingnew[attachurl] data/attachment
239. 图片处理库类型:settingnew[imagelib]
240. 缩略图质量:settingnew[thumbquality]
241. 是否生成手机版缩略图:settingnew[thumbdisabledmobile]
242. 远程附件:
243. 启用远程附件:settingnew[ftp][on]
244. 允许的附件扩展名:settingnew[ftp][allowedexts]
245. 禁止的附件扩展名:settingnew[ftp][disallowedexts]
246. 附件尺寸下限:settingnew[ftp][minsize]
247. 隐藏远程附件真实路径:settingnew[ftp][hideurl]
248. 论坛附件:
249. 帖子中显示图片附件:settingnew[attachimgpost]
250. 附件 URL 地址、媒体附件播放:settingnew[allowattachurl]
251. 论坛帖子附件缩略图设置:settingnew[thumbstatus]
252. 直接缩放原图:settingnew[thumbsource]
253. 附件链接有效期:settingnew[attachexpire]
254. 下载附件来路检查:settingnew[attachrefcheck]
255. 空间附件:
256. 图片最大尺寸:settingnew[maxthumbwidth] settingnew[maxthumbHeight]
257. 门户附件:
258. 开启文章图片缩略图:settingnew[portalarticleimgthumbclosed]
259. 文章图片缩略图尺寸:settingnew[portalarticleimgthumbwidth] settingnew[portalarticleimgthumbHeight]
260.
261. 水印设置:
262. 文章:文章图片水印设置
263. 水印位置:settingnew[watermarkstatus][portal]
264. 水印添加条件:settingnew[watermarkminwidth][portal]*settingnew[watermarkminHeight][portal]
265. 水印图片类型:settingnew[watermarktype][portal]
266. 水印融合度:settingnew[watermarktrans][portal]
267. JPEG水印质量:settingnew[watermarkquality][portal]
268. 文本水印文字:settingnew[watermarktext][portal]
269. 文本水印字体:settingnew[watermarktext][fontpath][portal]
270. 文本水印字体大小:settingnew[watermarktext][size][portal]
271. 文本水印显示角度:settingnew[watermarktext][angle][portal]
272. 文本水印字体颜色:settingnew[watermarktext][color][portal]
273. 文本水印阴影横向偏移量:settingnew[watermarktext][shadowx][portal]
274. 文本水印阴影纵向偏移量:settingnew[watermarktext][shadowy][portal]
275. 文本水印阴影颜色:settingnew[watermarktext][shadowcolor][portal]
276. 文本水印横向偏移量(ImageMagick):settingnew[watermarktext][translatex][portal]
277. 文本水印纵向偏移量(ImageMagick):settingnew[watermarktext][translatey][portal]
278. 文本水印横向倾斜角度(ImageMagick):settingnew[watermarktext][skewx][portal]
279. 文本水印纵向倾斜角度(ImageMagick):settingnew[watermarktext][skewy][portal]

php intval 两位小数乘以100后结果少1

因为工作需要,价格处理的时候往往是两位小数需要换算成分,如:16.33元换算为1633分,直接乘以100也就行了的,但是又使用了一个转换为整数类型的函数intval() 这下子结果就不对了,如图:
这里写图片描述
结果:
这里写图片描述
可以看出原本结果应该是1633的,但是使用了函数intval() 之后结果居然变为了1632了,这是由于浮点类型的数字不能在不丢失一点儿精度的情况下通过内部二进制转换得到结果的,换句话说就是浮点类型的计算都会丢失精度的。
该函数的解决方法手册上也给出了,就是需要先使用strval() 函数将变量转成字符串类型,使用情况及结果如下:
这里写图片描述
这里写图片描述

还有就是直接使用类型转换也是不行的,如:(int)($pay_price*100) 结果也会损失精度的。
如图:
这里写图片描述
这里写图片描述

http://blog.csdn.net/leedaning/article/details/52485699

pre_forum_post中invisible字段说明

1.表说明:
pre_forum_threadimage 放置了帖子中宽度最宽的图片附件,且每个帖子只有一条记录
{
$threadimage = DB::fetch_first(“SELECT aid, attachment, remote FROM “.DB::table(getattachtablebytid($tid)).” WHERE tid=’$tid’ AND isimage IN (‘1’, ‘-1’) ORDER BY width DESC LIMIT 1″);
$threadimageaid = $threadimage[‘aid’];
}

2.pre_common_block_item_data itemtype说明:
(推送数据优先于模块帅选数据)
pre_common_block_item_data itemtype=3
itemtype = 1 固定数据
itemtype = 2 修改了数据
itemtype=3 推送数据

3.部分表字段说明
* table : pre_forum_post
* invisible :0 正常
* invisible :-3 已忽略
* invisible :-2 待审核
* invisible :-5 回收站
* invisible : -1 主题帖在回收站中
* table : pre_forum_thread
* displayorder : 0 正常
* displayorder : -1 回收站
* displayorder : -2 待审核
* displayorder : -4 草稿帖

4.pre_common_nav- 自定义导航栏表
navtype=>’导航类型(0:主导航 1:底部导航 2:家园导航 3:快捷导航 4:顶部导航)’

Discuz核心函数库function_core的函数注释

/**
 * 系统错误处理
 * @param <type> $message 错误信息
 * @param <type> $show 是否显示信息
 * @param <type> $save 是否存入日志
 * @param <type> $halt 是否中断访问
 */
function system_error($message, $show = true, $save = true, $halt = true) {
    ......    
}

/**
 * 更新 session
 * @global <type> $_G
 * @staticvar boolean $updated
 * @param boolean $force
 * @return boolean
 */
function updatesession($force = false) {
    ......    
}

/**
 * 获取 microtime float 数值,为了兼容php4
 * @return <float>
 */
function dmicrotime() {
    ......    
}

/**
 * 设置全局 $_G 中的变量
 * @global <array> $_G
 * @param <string> $key 键
 * @param <string> $value 值
 * @param <mix> $group 组(准备废弃,尽量不用)
 * @return true
 *
 * @example
 * setglobal('test', 1); // $_G['test'] = 1;
 * setglobal('config/test/abc') = 2; //$_G['config']['test']['abc'] = 2;
 *
 */
function setglobal($key , $value, $group = null) {
    ......    
}

/**
 * 获取全局变量 $_G 当中的某个数值
 * @global  $_G
 * @param <type> $key
 * @param <type> $group 计划废弃的参数,不建议使用
 * @return <mix>
 *
 * $v = getglobal('test'); // $v = $_G['test']
 * $v = getglobal('test/hello/ok');  // $v = $_G['test']['hello']['ok']
 */
function getglobal($key, $group = null) {
    ......    
}

/**
 * 取出 get, post, cookie 当中的某个变量
 *
 * @param string $k  key 值
 * @param string $type 类型
 * @return mix
 */
function getgpc($k, $type='GP') {
    ......    
}

/**
 * 根据uid 获取用户基本数据
 * @staticvar array $users 存放已经获取的用户的信息,避免重复查库
 * @param <int> $uid
 * @return <array>
 */
function getuserbyuid($uid) {
    ......    
}

/**
* 获取当前用户的扩展资料
* @param $field 字段
*/
function getuserprofile($field) {
    ......    
}

/**
 * 对字符串或者输入进行 addslashes 操作
 * @param <mix> $string
 * @param <int> $force
 * @return <mix>
 */
function daddslashes($string, $force = 1) {
    ......    
}

/**
 * 对字符串进行加密和解密
 * @param <string> $string
 * @param <string> $operation  DECODE 解密 | ENCODE  加密
 * @param <string> $key 当为空的时候,取全局密钥
 * @param <int> $expiry 有效期,单位秒
 * @return <string>
 */
function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {
    ......    
}

/**
 * 远程文件文件请求兼容函数
 */
function dfsockopen($url, $limit = 0, $post = '', $cookie = '', $bysocket = FALSE, $ip = '', $timeout = 15, $block = TRUE) {
    ......    
}

/**
* HTML转义字符
* @param $string - 字符串
* @return 返回转义好的字符串
*/
function dhtmlspecialchars($string) {
    ......    
}

/**
 * 退出程序 同 exit 的区别, 对输出数据会进行 重新加工和处理
 * 通常情况下,我们建议使用本函数终止程序, 除非有特别需求
 * @param <type> $message
 */
function dexit($message = '') {
    ......    
}

/**
 * 同 php header函数, 针对 location 跳转做了特殊处理
 * @param <type> $string
 * @param <type> $replace
 * @param <type> $http_response_code
 */
function dheader($string, $replace = true, $http_response_code = 0) {
    ......    
}

/**
* 设置cookie
* @param $var - 变量名
* @param $value - 变量值
* @param $life - 生命期
* @param $prefix - 前缀
* @param $httponly - 安全属性
*/
function dsetcookie($var, $value = '', $life = 0, $prefix = 1, $httponly = false) {
    ......    
}

/**
 * 获取cookie
 * @param $key - cookie名称,不需要带前缀
 */
function getcookie($key) {
    ......    
}

/**
 * 获取文件扩展名
 * @param $filename 文件名
 */
function fileext($filename) {
    ......    
}

/**
* 检查是否是以手机浏览器进入(IN_MOBILE)
*/
function checkmobile() {
    ......    
}

/**
 * 字符串方式实现 preg_match("/(s1|s2|s3)/", $string, $match)
 * @param string $string 源字符串
 * @param array $arr 要查找的字符串 如array('s1', 's2', 's3')
 * @param bool $returnvalue 是否返回找到的值
 * @return bool
 */
function dstrpos($string, &$arr, $returnvalue = false) {
    ......    
}

/**
* 检查邮箱是否有效
* @param $email 要检查的邮箱
* @param 返回结果
*/
function isemail($email) {
    ......    
}

/**
* 问题答案加密
* @param $questionid - 问题
* @param $answer - 答案
* @return 返回加密的字串
*/
function quescrypt($questionid, $answer) {
    ......    
}

/**
* 产生随机码
* @param $length - 要多长
* @param $numberic - 数字还是字符串
* @return 返回字符串
*/
function random($length, $numeric = 0) {
    ......    
}

/**
 * 判断一个字符串是否在另一个字符串中存在
 *
 * @param string 原始字串 $string
 * @param string 查找 $find
 * @return boolean
 */
function strexists($string, $find) {
    ......    
}

/**
 * 获取头像
 *
 * @param int $uid 需要获取的用户UID值
 * @param string $size 获取尺寸 'small', 'middle', 'big'
 * @param boolean $returnsrc 是否直接返回图片src
 * @param boolean $real 是否返回真实图片
 * @param boolean $static 是否返回真实路径
 * @param string $ucenterurl 强制uc路径
 */
function avatar($uid, $size = 'middle', $returnsrc = FALSE, $real = FALSE, $static = FALSE, $ucenterurl = '') {
    ......    
}

/**
* 加载语言
* 语言文件统一为 $lang = array();
* @param $file - 语言文件,可包含路径如 forum/xxx home/xxx
* @param $langvar - 语言文字索引
* @param $vars - 变量替换数组
* @param $default - 指定默认值,当找不到对应言包时生效
* @return 语言文字
*/
function lang($file, $langvar = null, $vars = array(), $default = null) {
    ......    
}

/**
* 检查模板源文件是否更新
* 当编译文件不存时强制重新编译
* 当 tplrefresh = 1 时检查文件
* 当 tplrefresh > 1 时,则根据 tplrefresh 取余,无余时则检查更新
*
*/
function checktplrefresh($maintpl, $subtpl, $timecompare, $templateid, $cachefile, $tpldir, $file) {
    ......    
}

/**
* 解析模板
* @return 返回域名
*/
function template($file, $templateid = 0, $tpldir = '', $gettplfile = 0, $primaltpl='') {
    ......    
}

/**
 * 对某id进行个性化md5
 */
function modauthkey($id) {
    ......    
}

/**
 * 获得当前应用页面选中的导航id
 */
function getcurrentnav() {
    ......    
}

/**
* 读取缓存
* @param $cachenames - 缓存名称数组或字串
*/
function loadcache($cachenames, $force = false) {
    ......    
}

/**
 * 通过memcache\mysql\file等几种手段读缓存
 * @param mixed $cachenames 缓存名的数组或字串
 */
function cachedata($cachenames) {
    ......    
}

/**
* 格式化时间
* @param $timestamp - 时间戳
* @param $format - dt=日期时间 d=日期 t=时间 u=个性化 其他=自定义
* @param $timeoffset - 时区
* @return string
*/
function dgmdate($timestamp, $format = 'dt', $timeoffset = '9999', $uformat = '') {
    ......    
}

/**
	得到时间戳
*/
function dmktime($date) {
    ......    
}

/**
* 更新缓存
* @param $cachename - 缓存名称
* @param $data - 缓存数据
*/
function save_syscache($cachename, $data) {
    ......    
}

/**
* Portal模块
* @param $parameter - 参数集合
*/
function block_get($parameter) {
    ......    
}

/**
* Portal 模块显示
*
* @param $parameter - 参数集合
*/
function block_display($bid) {
    ......    
}

/**
* 返回库文件的全路径
*
* @param string $libname 库文件分类及名称
* @param string $folder 模块目录'module','include','class'
* @return string
*
* @example require DISCUZ_ROOT.'./source/function/function_cache.php'
* @example 我们可以利用此函数简写为:require libfile('function/cache');
*
*/
function libfile($libname, $folder = '') {
    ......    
}

/**
 * 针对uft-8进行特殊处理的strlen
 * @param string $str
 * @return int
 */
function dstrlen($str) {
    ......    
}

/**
* 根据中文裁减字符串
* @param $string - 字符串
* @param $length - 长度
* @param $doc - 缩略后缀
* @return 返回带省略号被裁减好的字符串
*/
function cutstr($string, $length, $dot = ' ...') {
    ......    
}

/**
* 论坛 aid url 生成
*/
function aidencode($aid, $type = 0, $tid = 0) {
    ......    
}

/**
 * 返回论坛缩放附件图片的地址 url
 */
function getforumimg($aid, $nocache = 0, $w = 140, $h = 140, $type = '') {
    ......    
}


/**
 * 获取rewrite字符串
 * @param string $type 需要获取的rewite
 * @param boolean $returntype true:直接返回href, false:返回a标签
 * @param string $host 可选网站域名
 * @return string
 */
function rewriteoutput($type, $returntype, $host) {
    ......    
}

/**
* 手机模式下替换所有链接为mobile=yes形式
* @param $file - 正则匹配到的文件字符串
* @param $file - 要被替换的字符串
* @$replace 替换后字符串
*/
function mobilereplace($file, $replace) {
    ......    
}

/**
* 手机的output函数
*/
function mobileoutput() {
    ......    
}

/**
* 系统输出
* @return 返回内容
*/
function output() {
    ......    
}

/**
 * ajax footer使用输出页面内容
 */
function output_ajax() {
    ......    
}

/**
 * 运行钩子
 */
function runhooks() {
    ......    
}

/**
 * 执行插件脚本
 */
function hookscript($script, $hscript, $type = 'funcs', $param = array(), $func = '') {
    ......    
}

/**
 * 获取插件模块
 */
function pluginmodule($pluginid, $type) {
    ......    
}

/**
 * 执行积分规则
 * @param String $action:  规则action名称
 * @param Integer $uid: 操作用户
 * @param array $extrasql: common_member_count的额外操作字段数组格式为 array('extcredits1' => '1')
 * @param String $needle: 防重字符串
 * @param Integer $coef: 积分放大倍数
 * @param Integer $update: 是否执行更新操作
 * @param Integer $fid: 版块ID
 * @return 返回积分策略
 */
function updatecreditbyaction($action, $uid = 0, $extrasql = array(), $needle = '', $coef = 1, $update = 1, $fid = 0) {
    ......    
}

/**
* 检查积分下限
* @param string $action: 策略动作Action或者需要检测的操作积分值使如extcredits1积分进行减1操作检测array('extcredits1' => -1)
* @param Integer $uid: 用户UID
* @param Integer $coef: 积分放大倍数/负数为减分操作
* @param Integer $returnonly: 只要返回结果,不用中断程序运行
*/
function checklowerlimit($action, $uid = 0, $coef = 1, $fid = 0, $returnonly = 0) {
    ......    
}

/**
 * 批量执行某一条策略规则
 * @param String $action:  规则action名称
 * @param Integer $uids: 操作用户可以为单个uid或uid数组
 * @param array $extrasql: common_member_count的额外操作字段数组格式为 array('extcredits1' => '1')
 * @param Integer $coef: 积分放大倍数,当为负数时为反转操作
 * @param Integer $fid: 版块ID
 */
function batchupdatecredit($action, $uids = 0, $extrasql = array(), $coef = 1, $fid = 0) {
    ......    
}

/**
 * 添加积分
 * @param Integer $uids: 用户uid或者uid数组
 * @param String $dataarr: member count相关操作数组,例: array('threads' => 1, 'doings' => -1)
 * @param Boolean $checkgroup: 是否检查用户组 true or false
 * @param String $operation: 操作类型
 * @param Integer $relatedid:
 * @param String $ruletxt: 积分规则文本
 */

function updatemembercount($uids, $dataarr = array(), $checkgroup = true, $operation = '', $relatedid = 0, $ruletxt = '') {
	if(!empty($uids) && (is_array($dataarr) && $dataarr)) {
		require_once libfile('function/credit');
		return _updatemembercount($uids, $dataarr, $checkgroup, $operation, $relatedid, $ruletxt);
	}
	return true;
}

/**
 * 校验用户组
 * @param $uid
 */
function checkusergroup($uid = 0) {
    ......    
}

/**
* 调试信息
*/
function debuginfo() {
    ......    
}

/**
 * 随机取出一个站长推荐的条目
 * @param $module 当前模块
 * @return array
*/
function getfocus_rand($module) {
    ......    
}

/**
 * 检查验证码正确性
 * @param $value 验证码变量值
 */
function check_seccode($value, $idhash) {
    ......    
}

/**
 * 检查验证问答正确性
 * @param $value 验证问答变量值
 */
function check_secqaa($value, $idhash) {
    ......    
}

/**
 * 获取广告
 */
function adshow($parameter) {
    ......    
}

/**
 * 显示提示信息
 * @param $message - 提示信息,可中文也可以是 lang_message.php 中的数组 key 值
 * @param $url_forward - 提示后跳转的 url
 * @param $values - 提示信息中可替换的变量值 array(key => value ...) 形式
 * @param $extraparam - 扩展参数 array(key => value ...) 形式
 *	跳转控制
		header		header跳转
		location	location JS 跳转,限于 msgtype = 2、3
		timeout		定时跳转
		refreshtime	自定义跳转时间
		closetime	自定义关闭时间,限于 msgtype = 2,值为 true 时为默认
		locationtime	自定义跳转时间,限于 msgtype = 2,值为 true 时为默认
	内容控制
		alert		alert 图标样式 right/info/error
		return		显示请返回
		redirectmsg	下载时用的提示信息,当跳转时显示的信息样式
 					0:如果您的浏览器没有自动跳转,请点击此链接
 					1:如果 n 秒后下载仍未开始,请点击此链接
		msgtype		信息样式
 					1:非 Ajax
 					2:Ajax 弹出框
 					3:Ajax 只显示信息文本
		showmsg		显示信息文本
		showdialog	关闭原弹出框显示 showDialog 信息,限于 msgtype = 2
		login		未登录时显示登录链接
		extrajs		扩展 js
		striptags	过滤 HTML 标记
	Ajax 控制
		handle		执行 js 回调函数
		showid		控制显示的对象 ID
 */
function showmessage($message, $url_forward = '', $values = array(), $extraparam = array(), $custom = 0) {
    ......    
}

/**
* 检查是否正确提交了表单
* @param $var 需要检查的变量
* @param $allowget 是否允许GET方式
* @param $seccodecheck 验证码检测是否开启
* @return 返回是否正确提交了表单
*/
function submitcheck($var, $allowget = 0, $seccodecheck = 0, $secqaacheck = 0) {
    ......    
}

/**
* 分页
* @param $num - 总数
* @param $perpage - 每页数
* @param $curpage - 当前页
* @param $mpurl - 跳转的路径
* @param $maxpages - 允许显示的最大页数
* @param $page - 最多显示多少页码
* @param $autogoto - 最后一页,自动跳转
* @param $simple - 是否简洁模式(简洁模式不显示上一页、下一页和页码跳转)
* @return 返回分页代码
*/
function multi($num, $perpage, $curpage, $mpurl, $maxpages = 0, $page = 10, $autogoto = FALSE, $simple = FALSE) {
    ......    
}

/**
* 只有上一页下一页的分页(无需知道数据总数)
* @param $num - 本次所取数据条数
* @param $perpage - 每页数
* @param $curpage - 当前页
* @param $mpurl - 跳转的路径
* @return 返回分页代码
*/
function simplepage($num, $perpage, $curpage, $mpurl) {
    ......    
}

/**
 * 词语过滤
 * @param $message - 词语过滤文本
 * @return 成功返回原始文本,否则提示错误或被替换
 */
function censor($message, $modword = NULL, $return = FALSE) {
    ......    
}

/**
	词语过滤,检测是否含有需要审核的词
*/
function censormod($message) {
    ......    
}

/**
* 刷新重定向
*/
function dreferer($default = '') {
    ......    
}

/**
 * 远程FTP使用
 */
function ftpcmd($cmd, $arg1 = '') {
    ......    
}

/**
 * 编码转换
 * @param <string> $str 要转码的字符
 * @param <string> $in_charset 输入字符集
 * @param <string> $out_charset 输出字符集(默认当前)
 * @param <boolean> $ForceTable 强制使用码表(默认不强制)
 *
 */
function diconv($str, $in_charset, $out_charset = CHARSET, $ForceTable = FALSE) {
    ......    
}

/**
 * 重建数组
 * @param <string> $array 需要反转的数组
 * @return array 原数组与的反转后的数组
 */
function renum($array) {
    ......    
}

/**
 * 获取当前脚本在线人数
 * @param <int> $fid 分类 ID,版块、群组 的 id,
 * @param <int> $tid 内容 ID,帖子 的 id
 */
function getonlinenum($fid = 0, $tid = 0) {
    ......    
}

/**
* 字节格式化单位
* @param $filesize - 大小(字节)
* @return 返回格式化后的文本
*/
function sizecount($size) {
    ......    
}

/**
 * 写入运行日志
 */
function writelog($file, $log) {
    ......    
}

/**
 * 调色板
 * @param <type> $colorid
 * @param <type> $id
 * @param <type> $background
 * @return <type>
 */
function getcolorpalette($colorid, $id, $background, $fun = '') {
    ......    
}

/**
 * 取得某标志位的数值 (0|1)
 *
 * @param 数值 $status
 * @param 位置 $position
 * @return 0 | 1
 */
function getstatus($status, $position) {
    ......    
}

/**
 * 设置某一bit位的数值 0 or 1
 *
 * @param int $position  1-16
 * @param int $value  0|1
 * @param 原始数值 $baseon  0x0000-0xffff
 * @return int
 */
function setstatus($position, $value, $baseon = null) {
    ......    
}

/**
 * 通知
 * @param Integer $touid: 通知给谁
 * @param String $type: 通知类型
 * @param String $note: 语言key
 * @param Array $notevars: 语言变量对应的值
 * @param Integer $system: 是否为系统通知 0:非系统通知; 1:系统通知
 */
function notification_add($touid, $type, $note, $notevars = array(), $system = 0) {
    ......    
}

/**
* 发送管理通知
* @param $type - 通知类型
*/
function manage_addnotify($type, $from_num = 0, $langvar = array()) {
    ......    
}

/**
* 发送短消息(兼容提醒)
* @param $toid - 接收方id
* @param $subject - 标题
* @param $message - 内容
* @param $fromid - 发送方id
*/
function sendpm($toid, $subject, $message, $fromid = '', $replypmid = 0, $isusername = 0, $type = 0) {
    ......    
}

/**
 *
 * 通过tid得到相应的单一post表名或post表集合
 * @param <mix> $tids: 允许传进单个tid,也可以是tid集合
 * @param $primary: 是否只查主题表 0:遍历所有表;1:只查主表
 * @return 当传进来的是单一的tid将直接返回表名,否则返回表集合的二维数组例:array('forum_post' => array(tids),'forum_post_1' => array(tids))
 * @TODO tid传进来的是字符串的,返回单个表名,传进来的是数组的,不管是不是一个数组,返回的还是数组,保证进出值对应
 */
function getposttablebytid($tids, $primary = 0) {
    ......    
}

/**
 * 获取论坛帖子表名
 * @param <int> $tableid: 分表ID,默认为:fourm_post表
 * @param <boolean> $prefix: 是否默认带有表前缀
 * @return forum_post or forum_post_*
 */
function getposttable($tableid = 0, $prefix = false) {
    ......    
}

/**
 * 内存读写接口函数
 *
 * @param 命令 $cmd (set|get|rm|check)
 * @param 键值 $key
 * @param 数据 $value
 * @param 有效期 $ttl
 * @return mix
 *
 * @example set : 写入内存 $ret = memory('set', 'test', 'ok')
 * @example get : 读取内存 $data = memory('get', 'test')
 * @example rm : 删除内存  $ret = memory('rm', 'test')
 * @example check : 检查内存功能是否可用 $allow = memory('check')
 */
function memory($cmd, $key='', $value='', $ttl = 0) {
    ......    
}

/**
* ip允许访问
* @param $ip 要检查的ip地址
* @param - $accesslist 允许访问的ip地址
* @param 返回结果
*/
function ipaccess($ip, $accesslist) {
    ......    
}

/**
* ip限制访问
* @param $ip 要检查的ip地址
* @param 返回结果
*/
function ipbanned($onlineip) {
    ......    
}

/**
 * 系统级消息
 */
function sysmessage($message) {
    ......    
}

/**
* 论坛权限
* @param $permstr - 权限信息
* @param $groupid - 只判断用户组
* @return 0 无权限 > 0 有权限
*/
function forumperm($permstr, $groupid = 0) {
    ......    
}

/**
 * PHP 兼容性函数
 */
if(!function_exists('file_put_contents')) {
	if(!defined('FILE_APPEND')) define('FILE_APPEND', 8);
	function file_put_contents($filename, $data, $flag = 0) {
		$return = false;
		if($fp = @fopen($filename, $flag != FILE_APPEND ? 'w' : 'a')) {
			if($flag == LOCK_EX) @flock($fp, LOCK_EX);
			$return = fwrite($fp, is_array($data) ? implode('', $data) : $data);
			fclose($fp);
		}
		return $return;
	}
}

//检查权限
function checkperm($perm) {
	global $_G;
	return (empty($_G['group'][$perm])?'':$_G['group'][$perm]);
}

/**
* 时间段设置检测
* @param $periods - 那种时间段 $settings[$periods]  $settings['postbanperiods'] $settings['postmodperiods']
* @param $showmessage - 是否提示信息
* @return 返回检查结果
*/
function periodscheck($periods, $showmessage = 1) {
    ......    
}

/**
 * 用户操作日志
 * @param int $uid 用户ID
 * @param string $action 操作类型 tid=thread pid=post blogid=blog picid=picture doid=doing sid=share aid=article uid_cid/blogid_cid/sid_cid/picid_cid/aid_cid/topicid_cid=comment
 * @return bool
 */
function useractionlog($uid, $action) {
    ......    
}

/**
 * 得到用户操作的代码或代表字符,参数为数字返回字符串,参数为字符串返回数字
 * @param string/int $var
 * @return int/string 注意:如果失败返回false,请使用===判断,因为代码0代表tid
 */
function getuseraction($var) {
    ......    
}

/**
 * 获取我的中心中展示的应用
 */
function getuserapp($panel = 0) {
    ......    
}

/**
 * 获取manyou应用本地图标路径
 * @param <type> $appid
 */
function getmyappiconpath($appid, $iconstatus=0) {
    ......    
}

/**
 * 获取文字内的url列表
 *
 * @param $message 文字
 * @return <array> url列表
 *
 */
function get_url_list($message) {
    ......    
}

/**
 * 检查文字内的URL
 *
 * @param $allowposturl 用户组设置中的值 0=禁止 1=允许但审核 2=允许但不解析
 * @param $message 待处理的文字内容
 * @return 0=禁止 1=允许但审核 2=允许但不解析
 */
function checkurl($allowposturl, &$message) {
    ......    
}

/**
 * 更新页面和模块的关系
 * @param string $targettplname 页面名称
 * @param array $blocks 模块IDS
 */
function update_template_block($targettplname, $blocks) {
    ......    
}

/**
 * 获取批定类型的关联连接
 *
 * @param string $extent 内容所需关联链接范围 article, forum, group, blog
 * @return string 有效的关联链接
 */
function getrelatedlink($extent) {
    ......    
}

/**
 * 判断 Connect 链接参数有效性
 * @global  $_G
 * @param array $params 参数数组
 * @param array $connect_params 返回参数
 * @return boolean
 */
function connect_valid($params, &$connect_params) {
    ......    
}

/**
 * 获取 Token
 * @global  $_G
 * @param string $type
 * @return string
 */
function connect_get_access_token($type = 'USER') {
    ......    
}

/**
 * 获取 Connect 参数签名
 * @param array $params 参数数组
 * @param string $access_token 加密 Token
 * @return string
 */
function connect_get_sig($params, $access_token) {
    ......    
}

/**
 * 通过 AID 获取附件表名
 * @param <int> $aid
 */
function getattachtablebyaid($aid) {
    ......    
}

/**
 * 返回指定 TID 所对应的附件表编号
 * @param <int> $tid
 */
function getattachtableid($tid) {
    ......    
}

/**
 * 通过 TID 获取附件表名
 * @param <int> $tid
 */
function getattachtablebytid($tid) {
    ......    
}

/**
 * 通过 PID 获取附件表名
 * @param <int> $pid
 */
function getattachtablebypid($pid) {
    ......    
}

/**
 * 添加一个新的附件索引记录,并返回新附件 ID
 * @param <int> $uid
 */
function getattachnewaid($uid = 0) {
    ......    
}

/**
 * 获取 SEO设置
 * @param string $page 调用哪个页面的
 * @param array $data 可替换数据
 * @return array('seotitle', 'seodescription', 'seokeywords')
 */
function get_seosetting($page, $data = array(), $defset = array()) {
    ......    
}

/**
 * 需处理连续分隔符的str_replace()
 * @param array $searchs 被替换的数组
 * @param array $replaces 用于替换的数组
 * @param string $str 目标字符串
 */
function strreplace_strip_split($searchs, $replaces, $str) {
    ......    
}

/**
 * 返回带第几页的title
 * @global  $_G
 * @param string $navtitle 源标题
 * @param int $page 页码
 * @return string
 */
function get_title_page($navtitle, $page){
	if($page > 1) {
    ......    
}

/**
 *
 * 生成缩略图文件名
 * @param String $fileStr: 原文件名,允许附带路径
 * @param String $extend: 新文件名后缀
 * @param Boolean $holdOldExt: 是否保留原扩展名
 * @return 返加新的后缀文件名
 */
function getimgthumbname($fileStr, $extend='.thumb.jpg', $holdOldExt=true) {
    ......    
}

/**
 * 更新数据的审核状态
 * @param <string> $idtype 数据类型 tid=thread pid=post blogid=blog picid=picture doid=doing sid=share aid=article uid_cid/blogid_cid/sid_cid/picid_cid/aid_cid/topicid_cid=comment
 * @param <array/int> $ids ID 数组、ID 值
 * @param <int> $status 状态 0=加入审核(默认) 1=忽略审核 2=审核通过
 */
function updatemoderate($idtype, $ids, $status = 0) {
    ......    
}

/**
 * 显示漫游应用公告
 */
function userappprompt() {
    ......    
}

如何判断微信内置浏览器(JS & PHP)

微信内置浏览器的 User Agent

如何判断微信内置浏览器,首先需要获取微信内置浏览器的User Agent,经过在 iPhone 上微信的浏览器的检测,它的 User Agent 是:

Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329 MicroMessenger/5.0.1

所以通过识别 MicroMessenger 这个关键字来确定是否微信内置的浏览器了。

通过 JavaScript 判断

function is_weixin(){
	var ua = navigator.userAgent.toLowerCase();
	if(ua.match(/MicroMessenger/i)=="micromessenger") {
		return true;
 	} else {
		return false;
	}
}

通过 PHP 判断

function is_weixin(){ 
	if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) {
			return true;
	}	
	return false;
}

forum_post 的 status 字段备注

2109 8765 4321 0987 6543 2109 8765 4321 序号
#B 0000 0000 0000 0000 0000 0000 0000 0001 帖子被屏蔽
#B 0000 0000 0000 0000 0000 0000 0000 0010 帖子被警告
#B 0000 0000 0000 0000 0000 0000 0000 0100 帖子审核后再编辑标记,用于防止重复加分
#B 0000 0000 0000 0000 0000 0000 0000 1000 手机版发帖标示
#B 0000 0000 0000 0000 0000 0000 0001 0000 微博回流的帖子标记
#B 0000 0000 0000 0000 0000 0000 0010 0000 [手机]是否显示地理位置
#B 0000 0000 0000 0000 0000 0000 0100 0000 [手机]含手机录音
#B 0000 0000 0000 0000 0000 0000 1000 0000 [手机型号(联动)] 001(1):iOS
#B 0000 0000 0000 0000 0000 0001 0000 0000 [手机型号(联动)] 010(2):Android 011(3):WindowsPhone
#B 0000 0000 0000 0000 0000 0010 0000 0000 [手机型号(联动)] 100:
#B 0000 0000 0000 0000 0000 0100 0000 0000 标记水帖