月度归档:2012年07月

设计模式之创建型模式

工厂方法模式:提供一个简单的决策类,根据条件生成产品。

抽象工厂模式:提供一个创建并返回一系列产品的接口。

单件模式:某个类只能有一个实例。提供一个全局访问点。(可拓展到有限个实例)

生成器模式:将一个复杂对象的构建于呈现分开,以便根据不同需要创建不同的形式。

原型模式:先实例化一个类,然后克隆或者拷贝该类来构建新的实例。可以用共有方法进一步修改这些实例。

 

linux登陆欢迎信息修改

当我们登陆自己的服务器时,想要一个欢迎语或者通知时,可以使用 vim /etc/motd
当用户登陆之后主机调用的配置文件/etc/motd,默认这个文件是空的,如果您有什么事情需要通知用户的,在这个文件里写一下,用户登陆就会看到了。
这样,我在这个文件里填写一段欢迎的话。在下一次登陆的时候就可以显示了。您不访可以试试。

thinkphp url重写开启

今天在thinkphp里的 url重写时 httpd.conf 里面的 mod_rewrite.so 模块已经开启 .htaccess 文件也已经放成根目录但是还是不能访问,不知道怎么回事。一查手册里面看到如下内容:其中有一条我没有做AllowOverride None 将None改为 All 之前也没有注意到这一块。

通常的URL里面含有index.php,为了达到更好的SEO效果可能需要去掉URL里面的index.php ,通过URL重写的方式可以达到这种效果,通常需要服务器开启URL_REWRITE模块才能支持。

下面是Apache的配置过程,可以参考下:

1、httpd.conf配置文件中加载了mod_rewrite.so模块

2、AllowOverride None 将None改为 All

3、确保URL_MODEL设置为2

4、把下面的内容保存为.htaccess文件放到入口文件的同级目录下

重启Apache之后,原来的

http://serverName/index.php/Blog/read/id/1

就可以通过访问

http://serverName/Blog/read/id/1

简化了URL地址。

于是度娘了一下看到:
******AllowOverride作用******

通常利用Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。从安全性考虑,根目录的AllowOverride属性一般都配置成不允许任何Override ,即
< Directory />
AllowOverride None
< /Directory>

在 AllowOverride 设置为 None 时, .htaccess 文件将被完全忽略。当此指令设置为 All 时,所有具有 “.htaccess” 作用域的指令都允许出现在 .htaccess 文件中。

现在上面的四条都已经完成,url重写生效 ^_^

PHP复选框值插入数据库方法

apache URL rewrite 实现

在电脑上装了一个thinkphp系统,发现不能访问,
路径tp/news 和tp/index.php/news都不能访问
查看config.php配置文件
url模式是 ‘URL_MODEL’=>2,重写模式

那需要开启apache的mod_rewrite模块
如果没有开启“mod_rewrite”,则打开目录 您的apache安装目录“/apache/conf/” 下的 httpd.conf 文件,通过Ctrl+F查找到“LoadModule rewrite_module”,将前面的”#”号删除即可。

如果没有查找到,则到“LoadModule” 区域,在最后一行加入“LoadModule rewrite_module modules/mod_rewrite.so”(必选独占一行),然后重启apache服务器即可。

在配置文件httpd.con中添加下面伪静态规则
RewriteEngine on
RewriteRule ^member/link_list.html?page=([0-9]+)$ index.php?mod=member&layout=link_list&page=$1 [R]

如果您不想在apache配置文件里面写入这个代码,可以在网站些网站根目录里面建一个 .htaccess文件
.htaccess文件里面写上

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

OK搞定.这下你就可以正常访问了 tp/news可以访问到新闻模块了

mysql导入数据时 USING BTREE 错误解决办法

今天在往测试数据库导入数据时,其中一个供应商表报USING BTREE 错误:You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right syntax to use
near ‘USING BTREE,UNIQUE KEY user_name (suppliers_name) USING BTREE ,
其实解决这个问题很简单。

打开要导入的文件在里面搜索 BTREE 找到如下内容

UNIQUE KEY user_name (suppliers_name) USING BTREE ,修改为

UNIQUE KEY user_name USING BTREE (suppliers_name) ,

即把USING BTREE 放到索引字段前面即可.

再次导入顺利通过了