戊辰人博客

青,取之于蓝而青于蓝;冰,水为之而寒于水。

ThinkPHP中自动验证时常用的正则表达式

日期:2015年01月06日 作者: 分类:编程 阅读:704

ThinkPHP的自动验证机制是为了进行表单数据验证,验证可以支持function、 callback、confirm、equal、unique和regex,这里要讲的是使用正则表达式进行验证。

一般我们见的比较多的是设置规则为require、email之类的,其实这些本身也是属于正则表达式验证方式,只是系统内置定义了一些常用的正则表达式而已。这些内置的正则表达式的定义可以参考model类的regex方法,内置支持的正则定义包括:

require 字段必须、email 邮箱、url URL地址、currency 货币、number 数字、zip 邮编、integer 整数、double 浮点数、english 英文字母,但是并不局限于这些正则规则的,我们完全可以直接在验证规则里面使用正则表达式进行定义,这样我们可以凭借强大的正则表达式来进行表单字段验 证,例如:

array(‘name’,’/^[a-z]\w{3,}$/i’,’名字不符合要求!’);
array(‘password’,’/^[a-z]\w{6,30}$/i’,’密码不符合要求!’);
array(‘account’,’/^[A-Za-z]+$/’,’账号必须使用英文!’);

阅读全文…

ORA-00020: maximum number of processes (150) exceeded

日期:2015年01月05日 作者: 分类:数据库 阅读:796

错误原因:连接数超过150的限制

解决方法:
1) 连接数据库
    [oracle@rhel ~]$ sqlplus /nolog
    SQL> conn /as sysdba
2) 查看参数
    SQL> show parameter process;
    NAME                       TYPE     VALUE
    ———————————— ———– ———
    aq_tm_processes               integer     0
    cell_offload_processing          boolean     TRUE
    db_writer_processes            integer     1
    gcs_server_processes            integer     0
    global_txn_processes            integer     1
    job_queue_processes            integer     1000
    log_archive_max_processes        integer     4
    processes                   integer     150

3) 修改参数
    SQL> alter system set processes=500 scope = spfile;
    SQL> create pfile from spfile;
4) 重启数据库
    SQL> shutdown immediate
    SQL> startup
5) 检查结果
    SQL> show parameter process;
    NAME                      TYPE      VALUE
    ———————————— ———– ——-
    aq_tm_processes               integer     0
    cell_offload_processing          boolean     TRUE
    db_writer_processes            integer     1
    gcs_server_processes            integer     0
    global_txn_processes            integer     1
    job_queue_processes            integer     1000
    log_archive_max_processes        integer     4
    processes                   integer     500

 

 

一句话问答(CentOS/RHEL)

日期:2015年01月05日 作者: 分类:运维 阅读:514

1. 如何获取CPU核心数量

grep -c ^processor /proc/cpuinfo

 

2. 如何踢出在线用户

先输入w命令,查看用户登录使用的终端,再执行如下命令

pkill -kill -t pts/0

 

3. 查看命令所在的软件包

yum provides */snmpwalk

 

4. CentOS使用yum update时不更新内核

A.修改yum配置文件 vi /etc/yum.conf,在[main]的最后添加exclude=kernel*

B.在yum命令后加上参数:yum –exclude=kernel* update

阅读全文…

浅谈朋友圈微商的逐渐衰败

日期:2015年01月04日 作者: 分类:互联网 阅读:453

朋友圈的微信广告是火了一阵又一阵,伴随着微信的产出,各路大神都围上来营销的营销、发鸡汤文的发鸡汤文、招代理的招代理,一篇欣欣向荣的迹象,跟 当年的微博有过之而无不及,各类培训、化妆品、面膜商更是见缝插针,让所有凡是能够拿起手机的妹子垂涎三尺的相信微信朋友圈只要发发广告就能够大把大把的 钞票入手,一时间,你方唱罢我方登场,各路微信月入过万的软文更是数不胜数,令人眼花缭乱,没有一点网络经验的人,仿佛在朋友圈里只要发一条广告,明天就 可以成为高富帅、然后赢取白富美、走向人生巅峰了;可是,(往往可是就是一个90°大转弯)微商真的那么好赚吗?微商现在还是一直坚挺吗?且听我一一分解。

阅读全文…

sqlite数据类型

日期:2015年01月04日 作者: 分类:数据库 阅读:445

SQLite数据类型介绍

一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断。SQLite具有以下五种数据类型:

 NULL:空值。
 INTEGER:带符号的整型,具体取决有存入数字的范围大小。
 REAL:浮点数字,存储为8-byte IEEE浮点数。
 TEXT:字符串文本。
 BLOB:二进制对象。

阅读全文…

MySQL导出与备份

日期:2015年01月04日 作者: 分类:数据库 阅读:476

环境:mysql 5.1

操作的数据库:monitor

1. MySQL导出数据库

mysqldump -hlocalhost -uroot -pdoubi123 monitor > monitor.sql

 

2. MySQL导入数据库

mysql -hlocalhost -uroot -pdoubi123 monitor < monitor.sql

 

 

RHEL6/CentOS6部署安装LAMP环境(yum)

日期:2015年01月04日 作者: 分类:运维 阅读:507

1.安装软件

yum install httpd mysql mysql-server php php-mysql php-devel

httpd (提供 Apache 主程序)

mysql (MySQL 客戶端)

mysql-server (MySQL 服务器程序)

php (PHP 主程序,内含 apache 使用的模块)

php-devel (PHP 的开发工具相关,这个与 PHP 外挂的加速软件有关)

php-mysql (提供给 PHP 程序读取 MySQL 数据库的模块)

 

2.Apache基本设定

[root@node1 ~]# vi /etc/hosts

192.168.1.200 node1 node1.localdomain

[root@node1 ~]# vi /etc/httpd/conf/httpd.conf

ServerName localhost

阅读全文…

nginx服务器设置301跳转

日期:2015年01月03日 作者: 分类:运维 阅读:529

网站建立我们要对www域名设置301进行跳转,那么在nginx服务器环境上我们如何设置?

例如:从xxxx.com跳转到www.xxxx.com,方便百度蜘蛛和用户对我们的网站域名进行正确的识别,加深用户对网站域名的印象。

方法/步骤

第一步 找到服务器下的nginx.conf文件

第二步 找到server段代码

server
{
     listen       80;
     server_name www.xxxx.com xxxx.com;
}

在server段域名下设置:

if ($host = 'xxxx.com' ) {       
     rewrite ^/(.*)$ http://www.xxxx.com/$1 permanent;
}

阅读全文…

C/C++中extern的使用

日期:2015年01月02日 作者: 分类:编程 阅读:442

1.基本解释

extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。

另外,extern也可用来进行链接指定。

2. 问题:extern 变量

在一个源文件里定义了一个数组:char a[6]; 在另外一个文件里用下列语句进行了声明:extern char *a;请问,这样可以吗?

答案与分析:

1)、不可以,程序运行时会告诉你非法访问。原因在于,指向类型T的指针并不等价于类型T的数组。extern char *a声明的是一个指针变量而不是字符数组,因此与实际的定义不同,从而造成运行时非法访问。应该将声明改为extern char a[ ]。

2)、例子分析如下,如果a[] = “abcd”,则外部变量a=0x61626364 (abcd的ASCII码值),*a显然没有意义

显然a指向的空间(0x61626364)没有意义,易出现非法内存访问。

3)、这提示我们,在使用extern时候要严格对应声明时的格式,在实际编程中,这样的错误屡见不鲜。

4)、extern用在变量声明中常常有这样一个作用,你在*.c文件中声明了一个全局的变量,这个全局的变量如果要被引用,就放在*.h中并用extern来声明。

阅读全文…

mysql编码设置为utf8

日期:2015年01月02日 作者: 分类:数据库 阅读:423

1.mysql 5.1系列

编辑/etc/my.cnf

分别在[mysqld] [mysql_safe] [mysql]中添加如下条目

default-character-set=utf8

 

2.mysql 5.5系列

编辑my.cnf

[client]
default-character-set=utf8

[mysqld]  
default-storage-engine=INNODB 
character-set-server=utf8 
collation-server=utf8_general_ci

 

3.修改数据库字符集

alter database dbname character set utf8;