Archive for the ‘PHP’ Category

PHP设置时区

前段时间国内买的空间老是出问题,三天两头地需要切换到国外的备份服务器。但是国内和国外的服务器有时差,以前都是手动修改代码,来调整时差。今天才发现,原来可以直接设置时区,避免更换了不同服务器因为不同的时区而重新修改代码了。

普通地在PHP里输出时间代码为:

echo $showtime=date("Y-m-d H:i:s");

一般来说,输出的时间会有8小时的时差,往往后面要加28800进行调整。

其实只要在开头加上代码

date_default_timezone_set('Asia/Shanghai');

将时区设置为固定,那么就不会出现任何时差了。

Godaddy开启GZIP压缩

先介绍下本人在Godaddy上买的空间,无限空间+无限流量+Linux

一开始网上搜索了很多godaddy开启GZIP压缩的方法,但是在漫长等待php配置文件生效之后,发现貌似不太管用。

后来发现godaddy可以直接使用php的内置压缩函数,具体方法如下:

页面顶部加入代码:if(Extension_Loaded('zlib')) Ob_Start('ob_gzhandler');

页面底部加入代码:if(Extension_Loaded('zlib')) Ob_End_Flush();

测试了下很完美,压缩了超过70%

测试地址:http://tool.chinaz.com/Gzips/Default.aspx

此外CSS、JPG、JS等非PHP文件可以通过静态文本调用PHP压缩模块实现GZIP压缩效果,具体实现方法:http://zhiqiang.org/blog/it/speedup-blog-gzip-javascript-css.html

chrome与IE的一些细微差别

相对于IE,chrome对网页代码要求更为严格,IE对于网页代码中的错误有很高的容错性。容错性好也就意味着兼容性相对更很出色。这里举两个例子

1、在一个页面通过POST方法提交变量到Sroan.php,而Sroan.php里使用get方法获取所要提交的方法,在IE中测试,IE可以返回正常,也就是容错了获取方法的不同。而在chrome中,获取的变量为空。

2、在chrome中路径"../Sroan.php"与"sroan.php"是不同的,前者等价于"../",而在IE中两者是等价的。

mysql自动增长插入数据出错解决办法

mysql自动增长插入数据出错描述

错误:INSERT INTO stock VALUES('浦发银行');
这样的形式会产生错误,信息大致说数据列不够。
Column count doesn't match value count at row 1
如果,自己填写id也可以,如下:
INSERT INTO stock (id, name) VALUES(1,'浦发银行');

正确写法,如下:
自动增长Id的插入语句
INSERT INTO test (name) VALUSE('浦发银行');

WordPress中文TAG伪静态无法访问解决办法

使用国内的主机的一大杯具就是要给自己博客做伪静态还要委托那些技术不怎么样的空间技术人员。而国内的空间服务商之差实在是难以想象,比如他会突然给你断网2-3天,不是维修就是搬机房,然后你用了几个月的404页面突然不能使用了。再几经周折后终于让空间服务商帮我的博客设置好伪静态。今天看了下谷歌网站管理工具,竟然有60多个死链接,一看原来所有中文TAG都无法访问,杯具啊!于是网上找了下WordPress中文TAG伪静态无法访问解决办法,原来是编码问题。

产生这个问题的主要原因是地址编码问题,及UTF-8和GBK之间转换的问题。IIS 对 URL 截取的时候取得的是 GBK 编码,但是 WordPress 中文都用的 UTF-8 编码,所以我们要对编码进行处理后再交给数据库进行查询。

转换编码解决 WordPress 中文 Tag 链接问题(推荐)

打开文件:wp-includes\classes.php

查找:

$pathinfo = $_SERVER['PATH_INFO'];

修改为:

$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], "UTF-8", "GBK");

再查找:

$req_uri = $_SERVER['REQUEST_URI'];

修改为:

$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], "UTF-8", "GBK");

保存,上传,问题解决。


PHPWIND去除主题回顾

在最新版本PHPWIND里回帖选择引用或者是高级模式的话会有显示主题回顾的功能,而主题回顾有个严重BUG,就是显示所有的回复内容,包括那些加密和出售的帖子,目前官方没有解决方案。

简单的解决方案,就是暂时关闭主题回顾功能,等论坛相关活动结束后再开启。

找到模板post.htm(文件夹template/wind里)

找到

if(($action=="reply" || $action=="quote"))

替换为

$sroa="0";//暂时关闭
if(($action=="reply" || $action=="quote")&&$sroa=="1"){print< <


ckeditor+ckfinder安装(实现上传图片功能 PHP)

著名的开源网页编辑软件FCKEditor在09年发布更新到3.0,并改名为CKEditor

ckeditor的代码全部重写,但里面没有了上传功能,只是一个纯粹的文件在线编辑器,如果需要上传图片,还需要下载ckfinder。

首先去官方上下载源代码,然后分别解压缩在网站根目录里(默认ckeditor和ckfinder文件夹里,一般不需要改动)

在所需要的页面插入JS

<script type="text/javascript" src="/ckeditor/ckeditor.JS"></script>

<script type="text/javascript" src="/ckfinder/ckfinder.js"> </script>

<form action="Sroan.php" method="post">

<textarea  cols="80" id="editor1" name="editor1" rows="10"></textarea>

<input type="submit" value="Submit" />

<script type="text/javascript"> 
var editor = CKEDITOR.replace('timu');
CKFinder.SetupCKEditor(editor, '../ckfinder/'); //ckfinder总目录的相对路径.
</script>

再修改ckfinder/config.php 里CheckAuthentication函数,返回改为ture(默认为fasle)

这样就能够实现上传功能了。

 

WordPress只显示首页友情链接

WordPress里的widget的确很方便,不过显示都是在全部页显示的。对于一个seoER来说,所有页面都显示友情链接实在是很难接受。为了解决这问题特地google了下。


有两种解决办法


1、添加is_home函数


编辑sidebar.php文件


在要增加友情链接的地方加入


1
2
3
4
5
6
7
<p>&lt;?php if (is_home()) {?&gt;<br />
&lt;ul&gt; <br />
&lt;?php get_links_list(); ?&gt; <br />
&lt;/ul&gt; <br />
&lt;?php }?&gt;

</p><p><br class="spacer_" /></p>

不过这种方法还要自己写样式,不是很方便。




2、使用Widget Logic插件

其可以将任意Widget小工具设置是否在文章页显示

使用方法:只需要在WordPress后台中搜索插件Widget Logic,后安装激活,在小工具的设置时即会出现Widget Logic选项:

在选项中填is_home()&&!is_paged() 即可做到友情连接只在博客首页显示


附相关参数设置:

is_home() 主页
is_admin() 管理员帐号
is_single() 文章页
is_page() 页面
is_category() 文章分类页
is_tag() 文章标签页
is_archive() 归档页
is_404() 页面无法找到页
is_search() 搜索结果页
is_feed() 订阅页
!is_category(5) 仅在ID非5的分类显示
is_home() || is_category(’baked-goods’) 在主页或名称为baked-goods的分类显示
is_page(’about’) 仅在关于页显示

织梦(DEDECMS)管理员密码加密分析

织梦的管理员账号和密码保存于数据库表dede_admin里
密码乍一看以为是经过MD5加密的,但是奇怪的竟然有20位!
仔细分析下,原来密码经过MD5加密后为32为,去掉了前5位和后7位,所有就20位了.
那如何使用呢?
也很简单去除前3位和最后一位就是有效MD5密码了。
比如8f2531f09a5c31f529c4
化简后得531f09a5c31f529c
解密后为Sroan

DEDECMS问答模块绑定二级域名无法登陆解决办法

1、在后台 系统管理 里 增加一个新变量 ,归类到 核心变量 ,并且命名为cfg_domain,中文描述为 本站域名,
值等于您的域名,我这里填写的是 33iq.com
2、找到安装目录根下 include/inc_functions.php 文件,改下面两个函数。

//按默认参数设置一个Cookie
function PutCookie($key,$value,$kptime,$pa="/"){
global $cfg_cookie_encode,$cfg_pp_isopen,$cfg_basehost,$cfg_domain;
if(empty($cfg_pp_isopen)
||!ereg("\.",$cfg_basehost)||!ereg("[a-zA-Z]",$cfg_basehost))
{
setcookie($key,$value,time()+$kptime,$pa,$cfg_domain);
setcookie($key.'ckMd5',substr(md5($cfg_cookie_encode.$value),0,16),time()+$kptime,$pa,$cfg_domain);
}else{
$dm = eregi_replace("http://([^\.]*)\.","",$cfg_basehost);
$dm = ereg_replace("/(.*)","",$dm);
$dm = $cfg_domain;
setcookie($key,$value,time()+$kptime,$pa,$dm);
setcookie($key.'ckMd5',substr(md5($cfg_cookie_encode.$value),0,16),time()+$kptime,$pa,$dm);
}
}