给图片(微信头像)右下角添加中国国旗

from __future__ import print_function
from PIL import Image

"""
需求:给图片右下角添加中国国旗
欢迎国庆,喜庆70周年
"""


class Picture:
    def handle_picture(self):
        # 打开图片模版
        img1 = Image.open("icon.png")
        # img1 = img1.convert('RGBA')
        # 打开原来的微信头像
        img2 = Image.open("test.jpg")

        if img2.size != (700, 700):  # 判断图片大小,统一改为 700*700
            # 修改图片尺寸
            size = (700, 700)
            img2.thumbnail(size)
            img2.show()
        # 将img1 粘贴到 img2
        img2.paste(img1, (532, 526))
        img2.show()   # 显示图片
        img2.save("new.png")   # 保存生成的头像图片


t0 = Picture()
t0.handle_picture()

用python来个小猪佩奇Peppa Pig

#!/usr/bin/python
# encoding: utf-8

from turtle import *


def nose(x, y):  # 鼻子
    penup()  # 提起笔
    goto(x, y)  # 定位
    pendown()  # 落笔,开始画
    setheading(-30)  # 将乌龟的方向设置为to_angle/为数字(0-东、90-北、180-西、270-南)
    begin_fill()  # 准备开始填充图形
    a = 0.4
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            a = a+0.08
            left(3)  # 向左转3度
            forward(a)  # 向前走a的步长
        else:
            a = a-0.08
            left(3)
            forward(a)
    end_fill()  # 填充完成

    penup()
    setheading(90)
    forward(25)
    setheading(0)
    forward(10)
    pendown()
    pencolor(255, 155, 192)  # 画笔颜色
    setheading(10)
    begin_fill()
    circle(5)
    color(160, 82, 45)  # 返回或设置pencolor和fillcolor
    end_fill()

    penup()
    setheading(0)
    forward(20)
    pendown()
    pencolor(255, 155, 192)
    setheading(10)
    begin_fill()
    circle(5)
    color(160, 82, 45)
    end_fill()


def head(x, y):  # 头
    color((255, 155, 192), "pink")
    penup()
    goto(x, y)
    setheading(0)
    pendown()
    begin_fill()
    setheading(180)
    circle(300, -30)
    circle(100, -60)
    circle(80, -100)
    circle(150, -20)
    circle(60, -95)
    setheading(161)
    circle(-300, 15)
    penup()
    goto(-100, 100)
    pendown()
    setheading(-30)
    a = 0.4
    for i in range(60):
        if 0 <= i < 30 or 60 <= i < 90:
            a = a+0.08
            lt(3)  # 向左转3度
            fd(a)  # 向前走a的步长
        else:
            a = a-0.08
            lt(3)
            fd(a)
    end_fill()


def ears(x, y):  # 耳朵
    color((255, 155, 192), "pink")
    penup()
    goto(x, y)
    pendown()
    begin_fill()
    setheading(100)
    circle(-50, 50)
    circle(-10, 120)
    circle(-50, 54)
    end_fill()

    penup()
    setheading(90)
    forward(-12)
    setheading(0)
    forward(30)
    pendown()
    begin_fill()
    setheading(100)
    circle(-50, 50)
    circle(-10, 120)
    circle(-50, 56)
    end_fill()


def eyes(x, y):  # 眼睛
    color((255, 155, 192), "white")
    penup()
    setheading(90)
    forward(-20)
    setheading(0)
    forward(-95)
    pendown()
    begin_fill()
    circle(15)
    end_fill()

    color("black")
    penup()
    setheading(90)
    forward(12)
    setheading(0)
    forward(-3)
    pendown()
    begin_fill()
    circle(3)
    end_fill()

    color((255, 155, 192), "white")
    penup()
    seth(90)
    forward(-25)
    seth(0)
    forward(40)
    pendown()
    begin_fill()
    circle(15)
    end_fill()

    color("black")
    penup()
    setheading(90)
    forward(12)
    setheading(0)
    forward(-3)
    pendown()
    begin_fill()
    circle(3)
    end_fill()


def cheek(x, y):  # 腮
    color((255, 155, 192))
    penup()
    goto(x, y)
    pendown()
    setheading(0)
    begin_fill()
    circle(30)
    end_fill()


def mouth(x, y):  # 嘴
    color(239, 69, 19)
    penup()
    goto(x, y)
    pendown()
    setheading(-80)
    circle(30, 40)
    circle(40, 80)


def setting():  # 参数设置
    pensize(4)
    hideturtle()  # 使乌龟无形(隐藏)
    colormode(255)  # 将其设置为1.0或255.随后 颜色三元组的r,g,b值必须在0 .. cmode范围内
    color((255, 155, 192), "pink")
    setup(840, 500)
    speed(10)


def main():
    setting()  # 画布、画笔设置
    nose(-100, 100)  # 鼻子
    head(-69, 167)  # 头
    ears(0, 160)  # 耳朵
    eyes(0, 140)  # 眼睛
    cheek(80, 10)  # 腮
    mouth(-20, 30)  # 嘴
    done()


if __name__ == '__main__':
    main()


Sourcetree跳过注册的方法

Sourcetree跳过注册的方法

当前只有Win的版本,Mac自行百度

很多人用git命令行不熟练,那么可以尝试使用sourcetree进行操作。

然而 sourcetree又一个比较严肃的问题就是,很多人不会跳过注册或者操作注册。

下载好之后会有这么一个界面要求你注册或登录。(不管它)将下面的一串串放进我的电脑的地址栏,打开sourcetree的文件夹

%LocalAppData%\Atlassian\SourceTree\

对,没错,你会看到一个很不和谐的文件你是没有的
恩,就是它,所以接下来你应该在当前文件夹下创建一个json文件,文件名为accounts.json
(如果不知道如何查看被隐藏掉的后缀名,请自行百度)
然后,编辑此文件的内容如下

[
  {
    "$id": "1",
    "$type": "SourceTree.Api.Host.Identity.Model.IdentityAccount, SourceTree.Api.Host.Identity",
    "Authenticate": true,
    "HostInstance": {
      "$id": "2",
      "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountInstance, SourceTree.Host.AtlassianAccount",
      "Host": {
        "$id": "3",
        "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountHost, SourceTree.Host.AtlassianAccount",
        "Id": "atlassian account"
      },
      "BaseUrl": "https://id.atlassian.com/"
    },
    "Credentials": {
      "$id": "4",
      "$type": "SourceTree.Model.BasicAuthCredentials, SourceTree.Api.Account",
      "Username": "",
      "Email": null
    },
    "IsDefault": false
  }
]

保存此文件。
重新启动sourcetree
和之前不一样的界面,无需注册
就是这样,sourcetree已经跳过注册环节了
[TOC]

Anaconda完全入门指南

Anaconda 使用指南

参考文章:
致Python初学者:Anaconda入门使用指南
Anaconda使用总结

Anaconda

下载

官网下载

推荐下载python3版本, 毕竟未来python2是要停止维护的.

配置环境变量

如果是windows的话需要去 控制面板\系统和安全\系统\高级系统设置\环境变量\用户变量\PATH 中添加 anaconda的安装目录的Scripts文件夹, 比如我的路径是D:\Software\Anaconda\Scripts, 看个人安装路径不同需要自己调整.

之后就可以打开命令行(最好用管理员模式打开) 输入 conda --version

如果输出conda 4.4.11之类的就说明环境变量设置成功了.

为了避免可能发生的错误, 我们在命令行输入conda upgrade --all 先把所有工具包进行升级

管理虚拟环境

接下来我们就可以用anaconda来创建我们一个个独立的python环境了.接下来的例子都是在命令行操作的,请打开你的命令行吧.

activate

activate 能将我们引入anaconda设定的虚拟环境中, 如果你后面什么参数都不加那么会进入anaconda自带的base环境,

你可以输入python试试, 这样会进入base环境的python解释器, 如果你把原来环境中的python环境去除掉会更能体会到, 这个时候在命令行中使用的已经不是你原来的python而是base环境下的python.而命令行前面也会多一个(base) 说明当前我们处于的是base环境下.

activate

创建自己的虚拟环境

我们当然不满足一个base环境, 我们应该为自己的程序安装单独的虚拟环境.

创建一个名称为learn的虚拟环境并指定python版本为3(这里conda会自动找3中最新的版本下载)

conda create -n learn python=3
image.png

于是我们就有了一个learn的虚拟环境, 接下来我们切换到这个环境, 一样还是用activae命令 后面加上要切换的环境名称

切换环境

activate learn

如果忘记了名称我们可以先用

conda env list

去查看所有的环境

现在的learn环境除了python自带的一些官方包之外是没有其他包的, 一个比较干净的环境我们可以试试

先输入python打开python解释器然后输入

>>> import requests

会报错找不到requests包, 很正常.接下来我们就要演示如何去安装requests包

exit()

退出python解释器

安装第三方包

输入

conda install requests

或者

pip install requests

来安装requests包.

安装完成之后我们再输入python进入解释器并import requests包, 这次一定就是成功的了.

卸载第三方包

那么怎么卸载一个包呢

conda remove requests

或者

pip uninstall requests

就行啦.

查看环境包信息

要查看当前环境中所有安装了的包可以用

conda list 

导入导出环境

如果想要导出当前环境的包信息可以用

conda env export > environment.yaml

将包信息存入yaml文件中.

当需要重新创建一个相同的虚拟环境时可以用

conda env create -f environment.yaml

其实命令很简单对不对, 我把一些常用的在下面给出来, 相信自己多打两次就能记住

activate // 切换到base环境

activate learn // 切换到learn环境

conda create -n learn python=3 // 创建一个名为learn的环境并指定python版本为3(的最新版本)

conda env list // 列出conda管理的所有环境

conda list // 列出当前环境的所有包

conda install requests 安装requests包

conda remove requests 卸载requets包

conda remove -n learn –all // 删除learn环境及下属所有包

conda update requests 更新requests包

conda env export > environment.yaml // 导出当前环境的包信息

conda env create -f environment.yaml // 用配置文件创建新的虚拟环境

深入一下

或许你会觉得奇怪为啥anaconda能做这些事, 他的原理到底是什么, 我们来看看anaconda的安装目录

image.png

这里只截取了一部分, 但是我们和本文章最开头的python环境目录比较一下, 可以发现其实十分的相似, 其实这里就是base环境. 里面有着一个基本的python解释器, lLib里面也有base环境下的各种包文件.

那我们自己创建的环境去哪了呢, 我们可以看见一个envs, 这里就是我们自己创建的各种虚拟环境的入口, 点进去看看

image.png

可以发现我们之前创建的learn目录就在下面, 再点进去

image.png

这不就是一个标准的python环境目录吗?


这么一看, anaconda所谓的创建虚拟环境其实就是安装了一个真实的python环境, 只不过我们可以通过activate,conda等命令去随意的切换我们当前的python环境, 用不同版本的解释器和不同的包环境去运行python脚本.

与pycharm连接

在工作环境中我们会集成开发环境去编码, 这里推荐JB公司的pycharm, 而pycharm也能很方便的和anaconda的虚拟环境结合

Setting => Project => Project Interpreter 里面修改 Project Interpreter , 点击齿轮标志再点击Add Local为你某个环境的python.exe解释器就行了

image.png

比如你要在learn环境中编写程序, 那么就修改为D:\Software\Anaconda\envs\learn, 可以看到这时候下面的依赖包也变成了learn环境中的包了.接下来我们就可以在pycharm中愉快的编码了.

image.png

结语

现在你是不是发现用上anaconda就可以十分优雅简单的解决上面所提及的单个python环境所带来的弊端了呢, 而且也明白了其实这一切的实现并没有那么神奇.

当然anaconda除了包管理之外还在于其丰富数据分析包, 不过那就是另一个内容了, 我们先学会用anaconda去换一种方法管里自己的开发环境, 这已经是一个很大的进步了

作者:AC手环
链接:https://www.jianshu.com/p/eaee1fadc1e9
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Linux(centos)常用命令

**查看系统版本**

cat /etc/redhat-release

**切换用户**

# su root

**yum常见命令**

yum repolist all //列出所有仓库

yum list all //列出创库所有软件包

yum install 软件包名
yum reinstall 软件包名
yum update 软件包名
yum remove 软件包名
yum clean all
yum check-update
yum grouplist
yum groupinstall 软件包组
yum groupremove
yum groupinfo

service foo start
service foo restart
service foo stop
service foo reload
service foo status
chkconfig
chkconfig foo on //开机自动启动
chkconfig foo off //开机不自动启动
chkconfig foo //查看是否为自动启动
chkconfig --list //查看各个级别下的服务启动与禁用情况
systemctl status 服务名.service //查看服务的运行状态

## 跳到文件头部尾部

# :1 和 :$

注意上面的是数字1,而不是英文的l

## 查看数据库日志

vi /var/log/mariadb/mariadb.log

日志对于我们了解一些错误很有用,比如可以通过查看数据库日志来了解数据库为什么会无缘无故的崩了。如果不确定有没有mariadb 这个目录,你可以先切换到 /var/log 这个目录,然后 ls 下,就可以看到 /var/log 目录下有没有 mariadb 目录了。

## 查看磁盘使用情况

# df -h

## 查看服务器运行使用情况

# uptime

查看服务器自上次启动运行了多长时间

[TOC]

解决Centos7不能联网且ifconfig出现command not found

在虚拟机中以最小化方式安装centos7,后无法上网,因为centos7默认网卡未激活。
而且在sbin目录中没有ifconfig文件,这是因为centos7已经不使用 ifconfig命令了,已经用ip命令代替;
并且网卡名称也不是eth0了,而是改成eno16777736了。
解决ifconfig不可用:ip addr 即查看分配网卡情况。
激活网卡:在文件 /etc/sysconfig/network-scripts/ifcfg-eth0 中
进入编辑模式,将 ONBOOT=no 改为 ONBOOT=yes,就OK

 

保存后重启网卡: service network restart
此时就可以上网了。(如果不知怎样判断能否上网,ping 一下网址就可以,就是这么简单,例如命令:ping www.baidu.com)

这样yum,wget等等都可以用啦

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