[ Content | Sidebar ]

Archives for 八月, 2010

梦幻的php分页类~

以后发代码都会放到bookmark里,feed里不会看到了。
这次写了一个比较梦幻的分页类,简单,但是很好用。。

主要特点:

  • 支持模板
  • 支持sql和数组两种数据源

不适合:
没有对大量数据的分页做优化,所以不适用于变态分页.

简单举个例子,下面是一个对数组分页的例子

$pager = new Pager; 
$pager->count = count($data['contacts']);
$pager->count_per_page = 20;
$pager->param = 'p';
$pager->template = <<<EOF
{start}-{end},共{count}<br />
{first}<a href="{first_url}">首页</a>|{/first}
{pre}<a href="{pre_url}">上一页</a>|{/pre}
{next}<a href="{next_url}">下一页</a>|{/next}
{last}<a href="{last_url}">末页</a>{/last}
EOF;
//对数组进行分页
foreach($pager->slice($data['contacts']) as $contact):
//...
Copy Code 

功能比较全的测试代码

$pager = new Pager; 
$pager->count = 200; 
$pager->count_per_page = 20;
$pager->param = 'p';
$pager->template = <<<EOF
{first}<a href="{first_url}">首页</a>{/first}
{pre}<a href="{pre_url}">上一页</a>{/pre}
<ul>
{pages4}<li><a {current}style="color:red;"{/current} href="{page_url}">{page_num}</a></li>{/pages4}
</ul>
{next}<a href="{next_url}">下一页</a>{/next}
{last}<a href="{last_url}">末页</a>{/last}
{start}-{end}/{count}
<select onchange="window.location.href=this.value;">
{pages}<option {current}selected=selected{/current} value="{page_url}">{page_num}</a>{/pages}
</select>
EOF;
//这里使用sql获取数据
echo $p->get_sql('select * from xxx where xxx {limit}');
Copy Code 

代码:http://code-of-emptyhua.googlecode.com/svn/trunk/phplib/pager.class.php

———–
post by gmail~

文件名转小写

rename版

rename -n "s#([A-Z])#\L\$1#g" *
Copy Code 

shell

#!/bin/sh
find `test -n $1 && echo $1 || echo "./"` -type f | while read f;
do
    dname=`dirname "$f"`
    fname=`basename "$f"`
    nname=`echo "$fname"|tr "[:upper:]" "[:lower:]"`
    mv "${dname}/${fname}" "${dname}/${nname}" 2>/dev/null && echo "${dname}/${fname} -> ${dname}/${nname}"
done
Copy Code 

———–
post by gmail~

ubuntu下看flash视频时禁用屏保

2010.10.3更新

#!/bin/sh
while true;
do
    if test -n "`file /tmp/Flash*|grep \"Macromedia Flash Video\\|MPEG v4\"`";then
        gnome-screensaver-command -p
    fi
    sleep 30 
done
Copy Code 

————————————-
非原创,改进版本,原文在这里

#!/bin/sh
while true;
do
    if test -n "`file /tmp/Flash*|grep \"Macromedia Flash Video\"`";then
        gnome-screensaver-command -p
    fi
    sleep 30
done
Copy Code 

原理是flash加载资源时会在/tmp目录产生缓存,这里每隔30秒检查一下是否有视频缓存,如果有,就用gnome-screensaver-command命令模拟活动一下,屏保就不会激活了~

———–
post by gmail~

用好vim的外部过滤器

明知有此功能却不知道利用,以前要在命令行转完再贴过来。。

screenshot_084.png

screenshot_085.png

———–
post by gmail~

速度创建一个grub启动盘

写了个shell,可以把U盘快速变成一个Grub启动盘,防灾必备~
恩,我采用了syslinux引导grub4dos的方式,这样不用给u盘格ext分区,使用脚本之前要现确保一下U盘是fat格式,不是的话mkfs.vfat格一下,之后下载下面这个shell
http://code-of-emptyhua.googlecode.com/svn/trunk/shell/mkgrubusb/bin/mkgrubusb.bin
然后运行下

#/dev/sdb4是u盘的设备号,因人而异,可用df命令查到
sudo ./mkgrubusb.bin /dev/sdb4
Copy Code 

如果提示成功,就可以用了

———–
post by gmail~