使用新主题了,大家给个意见哈

金老师,一路走好。

一 13th, 2010

金国兴老师,敬爱的地理都是,虽然只教我们一年地理,事隔10载记忆犹新,不幸的是,他于1月11日中午突发心肌梗死离世,英年45岁。愿他天堂之路走好。

标签:

php模块动态编译

一 9th, 2010

今天编译memcache扩展,由于从别的机器拷过来的,忘记make clean,出了点插曲,备忘下
cd memcache-2.2.5
/usr/local/bin/phpize
make clean
./configure –enable-memcache –with-php-config=/usr/local/bin/php-config –with-zlib-dir
make
make install
编译后会生成memcache.so
例如我的是:
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/
修改php.ini
将extension_dir改为以上目录或将生成的so文件移至extension目录
添加行
extension=memcache.so

标签:

38个精美css 和 jQuery 多级下拉菜单实例

十二 19th, 2009

当您需要创建一些内容和菜单部分很多的大型网站时,往往需要多级的菜单来将内容分类,这里收集合了38个 css 和 jQuery 多级下拉菜单解决方案,主要是基于jQuery和CSS下拉或多层次的下降可加载的文件,并且您只需要修改下CSS。就能快速搭建您自己的多级下拉菜单。

标签:

apache+subversion+dav 构建基于http的svn服务

十一 17th, 2009

昨天将服务器配置了svn服务,现作整理(以centos linux为例),以作备忘。

1.安装基本软件
yum install subversion subversion-tools
yum install libapache2-svn mod_dav_svn
2.创建版本库

假定我们将版本库存放在/data/svn/repos

mkdir -p /data/svn/repos
cd /data/svn/repos
svnadmin create test

如果要导入一些已有的代码,假定/data/www/test有一些写好的代码要导入到库中

svn import file:///data/www/test /data/svn/repos/test

这里导入成功后版本为1

3. 修改/etc/httpd/conf.d/svbversion.conf

(该文件在安装mod_dav_svn后自动产生)
取消注释以下行

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
<Location /repos>
   DAV svn 
   SVNParentPath /data/svn/repos
#   <LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      # SSLRequireSSL
      AuthType Basic
      AuthName "Authorization Realm"
      AuthUserFile /data/svn/passwordfile
      Require valid-user
#   </LimitExcept>
</Location>

说明:SVNParentPath指明SVN父目录,如果以一个版本库管理所有项目,则使用SVNPath即可。
AuthType
AuthName
AuthUserFile
这几项我指明了要经过http认证才可以访问该svn
使用htpasswd -c /data/svn/passwordfile username来创建密码文件
如果取消注释这项,说明除了GET PROPFIND OPTIONS REPORT这几种方式之外的请求均要求http认证,我这里注释掉了这一个,表示访问也要经过认证
当然还可以使用mysql验证用户,需使用mysql_auth_module模块。

4. service httpd reload 重导配置文件

如下
Revision 1: /
* config.inc.php
* htmls/
* includes/
* sqlite/

参考文档: http://www.ibm.com/developerworks/cn/java/j-lo-apache-subversion/

Powered by Subversion version 1.4.2 (r22196).

标签:

彩票在线机选

十一 3rd, 2009

闲着没事,写个彩票机选的~使用mt_rand产生而已,体彩、福彩等排列或组合型彩票均可使用,在线测试
下载源码

标签:

初试手了下bash编程,定期清除日志

十 21st, 2009

由于公司网站的日志文件按天为目录存放,格式如下
20090901
20090902
……
时间一长,硬盘老暴满,正好前些天看过点shell的知识,应用一下^_^

#!/bin/bash
#日志保留月份数
reserveMonth=2
#需保存的最早一天的日志
oldest=`date -d "-$reserveMonth month" +%Y%m%d`
#日志存放目录
workdir='/home/phpman/test'
#搜索目录
dirs=`ls $workdir -F | grep -P '\d{8}/' | sed 's/.$//'`
for i in $dirs;do
#早于最早那天的,删除
    if test $i -le $oldest
    then
        tmp_dir=${workdir}/$i
#记录此次操作的记录
        echo "Directory '$tmp_dir' deleted at `date '+%Y-%m-%d %H:%M:%S'`" >> ${workdir}/delete.log
        rm -rf $tmp_dir
    fi
done

然后将计划放入crontab
30 1 * * 5 root /root/clean_log.sh
每周六1:30执行下

标签:

好听的歌,搞笑的短片,放松一下=)

九 25th, 2009

周末不想加班的雷人大帝

标签:

该死的DOMDocument!

九 24th, 2009

PHP处理XML类文档主要有两个模块,一般简单点用SimpleXML,不过他只能作遍历、取值、取属性等操作,而不能进行删除修改节点的操作。使用libxml的DOMDocument功能比较强大,不过也比较麻烦。今天就遇见一问题,折腾很久~

有XML格式如下:

<foo xmlns="test">
<bar attr='a'></bar>
<bar attr='b'></bar>
<bar attr='c'></bar>
</foo>

开始尝试解析

<?php
    $dom = new DOMDocument;
    $dom->loadXML($xmls);//xmls变量为以上XML的字符串内容
    $messages = $dom->getElementsByTagName('bar');
    foreach($messages as $k=>$message){
        if(!is_object($message) || ($message->getAttribute('attr') == 'a')){
            continue;//属性attr 为a的保留        
        }
        $message->parentNode->removeChild($message);
    }
    echo $dom->saveXML();

//原以为删除了attr属性不为a的bar节点,可是却混淆了!后来尝试了replaceChild等,也不是太理想,而且还麻烦
//最后在PHP官方发现也有人提了此问题,并且人家找到办法绕过了此BUG
You can’t remove DOMNodes from a DOMNodeList as you’re iterating over them in a foreach loop. For example… 意思是说在遍历节点的时候进行删除操作会得到意想不到的结果,因此将要删除的结点暂存起来,最后再来删除
修正以上代码:

<?php
    $dom = new DOMDocument;
    $dom->loadXML($xmls);//xmls变量为以上XML的字符串内容
    $messages = $dom->getElementsByTagName('bar');
    $deletemessages = array();
    foreach($messages as $k=>$message){
        if(!is_object($message) || ($message->getAttribute('attr') == 'a')){
            continue;//属性attr 为a的保留        
        }
        $deletemessages[] = $message;
    }
    //删除
    foreach($deletemessages as $k=>$v){
        $v->parentNode->removeChild($v);
   }
    echo $dom->saveXML();

好了!这样就正常了……
参考PHP文档:http://us3.php.net/manual/en/domnode.removechild.php

标签:

百家讲坛之明亡清兴60年听完啦

九 8th, 2009

上月下载了很多百家讲坛的mp3,每天上下班用来打发时间。昨刚把阎崇年老师的明亡清兴60年听完。

明亡清兴从袁崇焕之死说起,经过明万历、泰昌、天启、崇祯,最后又以袁崇焕的历史评价终。把这60年历史讲述的淋漓尽致,人物个性,历史功过描述得很明朗。将明亡清兴的诸重要战役贯穿整个讲座,如萨尔浒大战、锦宁之战、宁远大捷、后来北京之战及最后的山海关大战等。同时还把这时期的主要历史人物作了描述,如万历皇帝的荒淫,不理朝政;天启皇帝爱做木工,是个十足的木匠皇帝;崇祯皇帝的多疑残暴;努尔哈赤的英勇睿智;袁崇焕的大仁、大智、大勇、大廉及尤其是崇高的爱国精神,值得我们借鉴与学习。

感谢大师阎崇年~将毕生的历史研究献给我们^_^

标签:

ubuntu下免输密码自动连远程主机

九 1st, 2009

使用putty的用户都知道,可以使用-l -pw参数设置快捷方式,以自动连接至远程主机,也可以用key方式 。

ubuntu下要用终端terminal自动连,也可以实现。首先装sshpass,apt-get就可以了。

然后在system->preferences->main menu里加一个new item项,其中command写上gnome-terminal –command ’sshpass -p pass ssh user@anyhost’就可以了。怎么样,很方便吧^_^

当然,putty亦有linux版的~

标签: