未来往事

php识别图片的主色调 不指定

Rinald 本站原创 PHP 2016/03/18 15:55
本文只做一些基础的单点识别判断,仅供参考。
PS:
imagecolorat函数注释:取得某像素的颜色索引值(PHP 4, PHP 5, PHP 7)
语法: int imagecolorat(int im, int x, int y);
返回值: 整数,返回image 所指定的图形中指定位置像素的颜色索引值。

相似函数:imagecolorsforindex — 取得某索引的颜色

php裁切图片方法示例 多云

Rinald 本站原创 PHP 2016/03/17 18:00
php裁剪图片指定区域代码示例
原图图片:
点击在新窗口中浏览此图片
其中虚线框中是我们需要裁切保存的图片。

输出图片:
+阅读全文
php imagecopymerge合并图片黑色背景问题,多图片合并 黑色背景问题解决

将默认使用的imagecopymerge替换成如下函数

图示:
+阅读全文

php身份证验证 不指定

Rinald 本站原创 PHP 2016/03/09 22:32
php身份证验证方法,身份证号码验证算法

18身份证号码的结构
  公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。
  排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。
1、地址码
  表示编码对象常住户口所在县(市、旗、区)的行政区域划分代码,按GB/T2260的规定执行。
2、出生日期码
  表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。
3、顺序码
  表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
4、校验码计算步骤
(1)十七位数字本体码加权求和公式
  S = Sum(Ai * Wi), i = 0, ... , 16 ,先对前17位数字的权求和
  Ai:表示第i位置上的身份证号码数字值(0~9)
  Wi:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 (表示第i位置上的加权因子)
(2)计算模
  Y = mod(S, 11)
(3)根据模,查找得到对应的校验码
  Y: 0 1 2 3 4 5 6 7 8 9 10
  校验码: 1 0 X 9 8 7 6 5 4 3 2
PS:
1.该程序可以剔除验证码不正确的身份证号码。
2.15位的身份证出生年份采用年份后2位,没有*后1位校验码。
3.完整的身份证18位,*后一位校验位可能是非数字。我们的一个项目,数据库保存前17位数字。

php代码执行时间记录 不指定

Rinald 本站原创 PHP 2016/02/15 16:35
php记录代码执行时间 php记录代码执行耗时

discuz 收不到注册注册链接  注册收不到邮件 收不到注册邮件 测试可以收到邮件

邮件设置:
1、站长--邮箱配置
2、UC--邮件配置

如果你已经设置了以上步骤并测试发送成功或失败、或找回密码已可以收到邮箱且使用的是腾讯企业邮箱,只是在注册时收不到邮件,那么 未来往事 建议你让QQ企业邮件SMTP走SSL方式:
SMTP服务器 - QQ 企业邮
ssl://smtp.exmail.qq.com
SMTP端口:465

SMTP服务器 - QQ 邮箱
ssl://smtp.qq.com
SMTP端口:465

SMTP服务器 - Gmail 企业邮
ssl://smtp.google.com
SMTP端口:465

wordpress固定链接 Nginx规则 不指定

Rinald 本站原创 Blog相关 2015/11/24 15:08
wordpress 固定链接 404 nginx 解决方法
location / {
                #try_files $uri $uri/ /index.php?$args;


                if (-f $request_filename/index.html){
                        rewrite (.*) $1/index.html break;
                }
                if (-f $request_filename/index.php){
                        rewrite (.*) $1/index.php;
                }
                if (!-f $request_filename){
                        rewrite (.*) /index.php;
                }
        }

debian打开crontab日志 不指定

Rinald 本站原创 Linux 2015/11/20 17:32
debian开启crontab日志,该日志记录状态系统默认为关闭状态。

修改文件:
# vi /etc/rsyslog.conf
cron.*                                /var/log/cron.log


重启日志服务:
# /etc/init.d/rsyslog restart

Nginx upstream模块 不指定

Rinald 本站原创 Apache/Nginx 2015/11/18 11:32
Nginx upstream模块使用及介绍:
Nginx upstream模块主要提供数据转发功能,为nginx提供了跨越单机的横向处理能力,使nginx摆脱只能为终端节点提供单一功能的限制,而使它具备了网路应用级别的拆分、封装和整合的战略功能。在云模型大行其道的今天,数据转发使nginx有能力构建一个网络应用的关键组件。当然,一个网络应用的关键组件往往一开始都会考虑通过高级开发语言编写,因为开发比较方便,但系统到达一定规模,需要更重视性能的时候,这些高级语言为了达成目标所做的结构化修改所付出的代价会使nginx的upstream模块就呈现出极大的吸引力,因为他天生就快。作为附带,nginx的配置提供的层次化和松耦合使得系统的扩展性也可能达到比较高的程度。如果你对Nginx反向代理感兴趣,可以查看本博客另外一篇文章《Nginx反向代理安装配置》。

言归正传,下面介绍upstream的用法:

Nginx upstream的分配方式:
1、后端服务器
通过 upstream 可以设定后端服务器,指定的方式可以是 IP 地址与端口、域名、UNIX 套接字(socket)。其中如果域名可以被解析为多个地址,则这些地址都作为 backend。例如:
upstream realserver {
    server a.fity.cn;
    server b.fity.cn:8001;
}

2、负载均衡策略:
Nginx 提供轮询(round robin)、用户 IP 哈希(client IP)和指定权重 3 种方式。
A、轮询(round robin 默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

B、weight(指定权重)
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
例如:
upstream pollll{
 server 192.168.2.200 weight=10;
 server 192.168.2.210 weight=10;
}

C、ip_hash(用户ip哈希 client IP)
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
再介绍一个和 ip_hash 配合使用的关键字:down。当某个一个 server 暂时性的宕机(down)时,你可以使用“down”来标示出来,并且这样被标示的 server 就不会接受请求去处理。要注意的是 weight 与 ip_hash 是不能同时使用的,原因很简单,他们是不同且彼此冲突的策略。
例如:
upstream pollserver{
 ip_hash;
 server 192.168.2.200:8001;
 server 192.168.2.210:8002;
 server proxy.fity.cn:8005 down;
}

3、重试策略:
+阅读全文
安装配置Nginx反向代理,Nginx在upstream服务器的反向代理配置,upstream模块介绍,本文基于Debian6 & Debian7  Nginx 1.8编写。

Nginx 、反向代理服务介绍
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器。

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

Nginx因其出色的处理并发连接的能力,越来越多地作为一个反向代理服务器被使用。所谓反向代理,即把Nginx置于用户接入的最前端,监听用户发来的请求,并把它们转发给相应的后端服务器来处理具体的请求。后端服务器可以是缓存服务器(如Varnish、Squid)或是处理动态/静态请求的服务器(如apache/Nginx/lighttpd),在这里不作深入讨论。本文对Nginx反向代理、Nginx在upstream服务器的设置和"proxy_pass"的功能在代码层面进行分析,并讨论在实际生产环境中的使用。

服务安装配置
1、安装 Nginx 与 ngx_http_sub_module 模块
ngx_http_sub_module模块是一个过滤器,它修改网站响应内容中的字符串,这个模块已经内置在nginx中,但是默认未安装,需要安装需要加上配置参数:--with-http_sub_module。反向代理任何网站,一般都只能反向代理首页,如果要替换里面的链接就需要再安装第三方模块with-http_sub_module模块,一般都是下载后编译安装,但是在debian下建议使用dotdeb源来安装nginx。

#追加dotdeb源
echo "deb http://packages.dotdeb.org squeeze all" >>/etc/apt/sources.list
echo "deb-src http://packages.dotdeb.org squeeze all" >>/etc/apt/sources.list
#nginx-full这个包里面包含着所有需要用到的模块
apt-get update
apt-get install nginx-full

至此,安装完毕。如果你在安装过程中遇到错误:Depends libssl0.9.8 (>= 0.9.8m-1) but it is not installable,请点击这里参考本博客另外一篇文章

2、配置Nginx反向代理模式
server {
listen       80;
server_name  g.fity.cn;
index index.php index.html index.htm;       #默认首页

location / {
     #sub_filter http://www.google.com  http://g.fity.cn; #替换URL
     sub_filter_once off; #搜索替换全部行
     proxy_pass http://www.google.com;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header Accept-Encoding ""; #清除编码
      }
  }
配置说明:创建一个g.fity.cn的域名用来反向代理访问www.google.com。

3、至此配置完毕,重启Nginx服务
#/usr/sbin/nginx -t #检查语法是否有错误
#/etc/init.d/nginx restart


配置进阶 - upstream模块
upstream模块使nginx将跨越单机的限制,完成网络数据的接收、处理和转发。
数据转发功能,为nginx提供了跨越单机的横向处理能力,使nginx摆脱只能为终端节点提供单一功能的限制,而使它具备了网路应用级别的拆分、封装和整合的战略功能。在云模型大行其道的今天,数据转发使nginx有能力构建一个网络应用的关键组件。当然,一个网络应用的关键组件往往一开始都会考虑通过高级开发语言编写,因为开发比较方便,但系统到达一定规模,需要更重视性能的时候,这些高级语言为了达成目标所做的结构化修改所付出的代价会使nginx的upstream模块就呈现出极大的吸引力,因为他天生就快。作为附带,nginx的配置提供的层次化和松耦合使得系统的扩展性也可能达到比较高的程度。如果你对upstream模块比较感兴趣可以查看本博客另外一篇文章《Nginx upstream模块》。

今天在Debian系统上使用apt-get install nginx-full方式安装nginx时遇到错误:Depends libssl0.9.8 (>= 0.9.8m-1) but it is not installable,错误代码如下:
root@(none):/opt# apt-get install nginx-full
Reading package lists... Done
Building dependency tree      
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
nginx-full : Depends: libssl0.9.8 (>= 0.9.8m-1) but it is not installable
E: Unable to correct problems, you have held broken packages.

解决思路:
错误提示缺少高于libssl0.9.8版本的包,安装即可。链接地址:
32bit:https://packages.debian.org/squeeze/i386/libssl0.9.8/download
64bit:https://packages.debian.org/squeeze/amd64/libssl0.9.8/download

由于本机是64位的Debian7系统,这里下载及安装如下:
#wget http://ftp.cn.debian.org/debian/pool/main/o/openssl/libssl0.9.8_0.9.8o-4squeeze14_amd64.deb
#dpkg -i libssl0.9.8_0.9.8o-4squeeze14_amd64.deb

再次运行# apt-get install nginx-full 安装成功。

Nginx Google反向代理扩展模块ngx_http_google_filter_module

ngx_http_google_filter_module扩展模块介绍
ngx_http_google_filter_module是一个过滤器模块,能够让谷歌镜像更便捷的部署。内建了正则表达式、URI locations和其他复杂的配置。原生nginx模块确保了更加高效地处理cookies, gstatic scoures和重定向。

轻松部署
1、依赖库
pcre 正则
ngx_http_proxy_module 反向代理
ngx_http_substitutions_filter_module 多重替换

下载substitutions扩展:
https://github.com/yaoweibin/ngx_http_substitutions_filter_module

2、依赖库安装过程(略)

3、Nginx重新编译安装
#cd /opt/lnmp1.2-full/src/nginx-1.8.0/

#./configure --user=www --group=www --prefix=/usr/local/nginx \
--with-http_stub_status_module --with-http_ssl_module --with-http_spdy_module \
--with-http_gzip_static_module --with-ipv6 --with-http_sub_module \
--add-module=/opt/ngx_http_google_filter_module \
--add-module=/opt/ngx_http_substitutions_filter_module-master

#make && make install

#cp -rf objs/nginx /usr/sbin/nginx  (覆盖二进制文件)

#service nginx restart
PS:#nginx -V查看版本号及上一次编辑安装的参数

4、基本配置
http配置方式
+阅读全文

php多维数组排序方法 阴

Rinald 本站原创 PHP 2015/10/19 15:41
php二维数组排序,php多维数组排序函数

Joomla后台登陆报错You do not have access to the administrator section of this site解决:

最近下了个Joomla安装倒腾,然后装完模板后导入了模板QuickSart后,发现后台登录不进去了,提示错误代码:
引用
You do not have access to the administrator section of this site
经过分析大意是登陆的账号没有权限访问管理后台。经过一番研究后,分享以下解决方法:

首先先来了解下几个表(prefix_为自己设定的表的前缀)
prefix_usergroups  //用户分组数据表;用户分组,一般会有Super Users、Public、Administrator等等……
prefix_users       //用户数据表;存放用户的帐密等信息
prefix_user_usergroup_map   //用户关联分组表;存放用户和分组的关联数据

prefix_user_usergroup_map 表中包含两个字段:
user_id       //用户id;对应prefix_users表中指定用户的id值
group_id      //分组id;对应prefix_usergroups表中指定的分组id值
Joomla账户的权限,都是通过用户所关联的分组读取权限;若用户无关联分组,自然不存在任何操作权限,所以会提示以上错误。一个用户可以关联多个分组;一个分组也可用于多个用户;他们之间的关联关系存放在prefix_user_usergroup_map表中。

要给用户分配分组,只需要在prefix_user_usergroup_map表中插入条数据即可,如
假设 prefix_users 表中存在用户admin,其id值为888, prefix_usergroup s表中存在用户分组Super User,其id值为8,那么在 prefix_user_usergroup_map 表中插入数据:user_id为888,group_id为8的数据即可。SQL语句为
插入该语句表示将admin用户分配到Super User的用户分组中;用户admin也就拥有了Super User分组的所有权限了。

joomla菜单默认首页/主页 不指定

Rinald 本站原创 CMS System 2015/09/15 22:59
joomla菜单默认首页   joomla set the default home page
admin -- menu -- main menu  -- click the index/home button

Example / Icon:
点击在新窗口中浏览此图片
第5页 / 共35页 第一页 « 上一页 1 2 3 4 5 6 7 8 9 10 下一页 » 最后页 [ 显示模式: 摘要 | 列表 ]