今天才弄清楚alt属性和title属性的区别
2009-01-27
    原来alt属性只适用与img标签,是在不能显示图片或者图片还没有加载完成的时候用来替换图片的文字,不宜太长。而title标签适用于绝大部分标签,以tool tip方式为浏览者提供更多的信息。
    在ie和早期的safari浏览器里面,会错误的把img标签的alt属性处理成title,这样的做法让很多开发者(其中包括以前的我)认为图片的tool tip就应该用alt~~
    不过从seo角度来说,貌似很多搜索引擎都只认图片的alt属性,而且google只认有链接的图片的alt属性。

查看全文...  

阅读:3396 评论: 5 💬
Flash + Javascript 让网页元素发光 的插件 glow!
2008-11-06

作者:Longbill ( www.longbill.cn ) longbill.cn [@] gmail.com
现在测试通过: IE6 IE7 Firefox3 Opera Safari(Mac) Chrome
2008-11-6

    前两天突发奇想,能不能让网页上的元素很容易的发光?结果正好发现flash里面有这样的滤镜。于是就硬着头皮写了个flash,实现了发光flash的动态生成。再结合javascript实现定位,把发光的flash放到真实的dom后面。于是神奇的事情就发生了。。。

    这个插件可以很容易的实现网页元素的发光或者阴影效果!目前只支持矩形发光效果,文字发光还在探索中。。。。

    源文件下载地址:JS Flash(右键另存为)

先看效果:

查看全文...  

阅读:3727 评论: 9 💬
MySQL中文全文搜索:PHP简单中文分词函数
2008-10-18
前段时间研究中文全文搜索,结果发现mysql不支持中文的全文搜索。但是有一些解决办法,就是手动把中文单词用空格分开,然后搜索的时候加上 in boolean mode。 但是这就带来一个问题,就是中文分词。这个是个很大的难题,貌似中科院有个小组就是专门做中文分词技术的。我们用php来分词的话,要实现真正语义上的分词是非常困难的,就算实现了效率也不高。一般情况下,我们采用的是如下方法分词:
比如我们有一句话:你好我是刘春龙 那么我们可以这样来分词: 你好 好我 我是 是刘 刘春 春龙
这样虽然看起来有点傻,但是实际应用起来确实可行,因为我们搜索时候输入的关键词也是按照这个方法分词。 下面有个我自己写的函数,可以实现这种分词。传入三个参数,分别是:
1.需要分词的字符串,必须,英文,标点,数字,汉字,日语等都可以。编码为UTF-8 2.是否返回字符串,可选,默认是。如果传入false,那么将返回一个数组。 3.是否base64_encode中文,可选,默认是。Mysql的全文搜索有个配置是 ft_min_word_len 这个值一般是4,而我们分成的中文词语是两个字,就不会被mysql认为是一个词。而base64_encode过后,词语的长度为8,就不存在最小长度问题了。 base64_encode过后数据量会增大 50%。
注意,这里输入和输出的字符串编码都是UTF-8

function string2words($s,$return_string = true,$encode64 = true)
{
        $re = '';
        //匹配汉字
        if (preg_match_all("/([x{4e00}-x{9fff}]{2,})/u",$s,$ms))
        {
                foreach($ms[0] as $w)
                {
                        //关键部分:分词
                        $l = strlen($w)/3;
                        for($i=0;$i<$l;$i++)
                        {
                                $wi = substr($w,$i*3,6);
                                if (strlen($wi) > 3)
                                {
                                        $re .= ($encode64)?' '.str_replace(',','@',base64_encode($wi)):' '.$wi;
                                }
                        }
                }
        }
        //匹配数字
        if (preg_match_all("/(d+[.]?d+)/",$s,$ms))
        {
                foreach($ms[0] as $wi)
                {
                        if(strlen($wi) >= 2)
                        {
                                $re .= ($encode64)?' '.str_replace(',','@',base64_encode($wi)):' '.$wi;
                        }
                }
                $s = preg_replace("/(d+[.]?d+)/",' ',$s);
        }
        //去掉所有双字节字符
        $s = preg_replace("/([^x{00}-x{ff}]+)/u",' ',$s);
        $re = $s.' '.$re;
        if (!$return_string)
        {
                $re = preg_replace("/([^d])([,.-?n])([^d])/",'$1 $3',$re);
                $re = trim(preg_replace("/[s]{2,}/",' ',$re));
                $arr = explode(' ',$re);
                $re = array();
                foreach($arr as $a)
                {
                        if (strlen($a) >= 2) $re[] = $a;
                }
                return $re;
        }
        else
        {
                $re = trim(preg_replace("/[s,.]{2,}/",' ',$re));
                return $re;
        }
}

完。

阅读:6422 评论: 11 💬
通用获得网页的实际大小的javascript函数
2008-10-15

    在做web2.0风格的弹出窗口的时候,经常需要把背景变暗和屏蔽。这时就需要得到一个网页的宽高数据。这里就会有很多细节和兼容性问题。经过长期摸索,现提供以下函数,希望对大家有用。这个函数的具体作用是获得网页的高度和宽度,如果网页没有窗口可见区域高的时候则取窗口的可见区域高度和宽度。返回值为一个对象 ,例如 { width:123, height:345}。现在兼容几乎所有的浏览器。

javascript代码:

function get_page_size()
{
    var re = {};
    if (document.documentElement && document.documentElement.clientHeight)
    {
        var doc = document.documentElement;
        re.width = (doc.clientWidth>doc.scrollWidth)?doc.clientWidth-1:doc.scrollWidth;
        re.height = (doc.clientHeight>doc.scrollHeight)?doc.clientHeight:doc.scrollHeight;
    }
    else
    {
        var doc = document.body;
        re.width = (window.innerWidth>doc.scrollWidth)?window.innerWidth:doc.scrollWidth;
        re.height = (window.innerHeight>doc.scrollHeight)?window.innerHeight:doc.scrollHeight;
    }
    return re;
}

完。

阅读:3996 评论: 3 💬
用PHP获取photoshop写入图片的文字信息
2008-10-13
有些摄影师喜欢把图片的标题,内容,关键词等用photoshop直接写入图片文件里面。 用以下代码可以读取。

$image_info = array();
$size = getimagesize('图片文件.jpg', $info);
if(isset($info['APP13']))
{
    $iptc = iptcparse($info['APP13']);
    foreach (array_keys($iptc) as $s)
    {             
        $c = count ($iptc[$s]);
        for ($i=0; $i <$c; $i++)
        {
            @$image_info[$s] .= $iptc[$s][$i];
        }  
    }
}
print_r($image_info);

完。

阅读:3355 评论: 2 💬
发布MiniAJAX聊天室程序 1.2 beta
2008-03-25
Mini AJAX Chatroom By Longbill 1.02 beta
作者: Longbill  http://www.longbill.cn
longbill.cn@gmail.com
Longbill all rights reserved
2008-03-26

协议
-----------------------------
创作共用(Creative Commons)

你可以免费:
   * 拷贝、分发、呈现和表演当前作品
   * 制作派生作品

但是必须基于以下条款:
  * 署名。你必须明确标明作者的名字。.
  * 非商业用途。 你不可将当前作品用于商业目的。
  * 保持一致。 如果你基于当前作品更改、变换或构造新作品,你应当按照与当前协议完全相同的协议分发最终作品
  * 对于任何二次使用或分发,你必须让其他人明确当前作品的授权条款
  * 在得到作者的明确允许下,这里的某些条款可以放弃

此约定是法律文本 (完整的协议)的简单易读概要


演示
-----------------------------
http://longbill.cn/down/sample/chat.php

特点
-----------------------------
1.小巧,整个程序只有一个20多KB的php文件
2.高效,使用ajax技术传输数据,服务器负担较小
3.保存聊天记录到php文件(不会被下载)
4.可以设置文字样式
5.显示在线用户
6.支持发送图片
7.完全支持IE6+ ,Firefox,Opera,Safari等主流浏览器

改进
-----------------------------
1.完全解决1.0版客户端内存泄露问题
2.大大减少了用户丢话的概率
3.优化了用户在线的判断标准
4.增加用户关闭聊天窗口的警告,防止误操作
5.增加发图片时候的url验证,防止发送恶意代码

设置
-----------------------------
使用文本编辑器打开程序文件进行具体设置

安装
-----------------------------
将这个程序传到服务器上,输入对应的url就可以了。
如果是Linux主机,请先自行建立 rooms 文件夹,并将此文件夹属性设置成0777

使用
-----------------------------
默认的聊天数据保存路径为 rooms/ 目录(如果没有,程序会自动创建)
调用时后加参数 room=房间名 , 比如 chat.php?room=happy,此时就程序就会自动创建 rooms/happy.php 文件来保存聊天数据。

下载
-----------------------------
http://longbill.cn/down/miniajaxchatroom.zip


完。

阅读:8604 评论: 165 💬
发布MiniAJAX聊天室程序 1.2 beta
2008-03-25
Mini AJAX Chatroom By Longbill 1.02 beta
作者: Longbill  http://www.longbill.cn
longbill.cn@gmail.com
Longbill all rights reserved
2008-03-26

协议
-----------------------------
创作共用(Creative Commons)

你可以免费:
   * 拷贝、分发、呈现和表演当前作品
   * 制作派生作品

但是必须基于以下条款:
  * 署名。你必须明确标明作者的名字。.
  * 非商业用途。 你不可将当前作品用于商业目的。
  * 保持一致。 如果你基于当前作品更改、变换或构造新作品,你应当按照与当前协议完全相同的协议分发最终作品
  * 对于任何二次使用或分发,你必须让其他人明确当前作品的授权条款
  * 在得到作者的明确允许下,这里的某些条款可以放弃

此约定是法律文本 (完整的协议)的简单易读概要


演示
-----------------------------
http://longbill.cn/down/sample/chat.php

特点
-----------------------------
1.小巧,整个程序只有一个20多KB的php文件
2.高效,使用ajax技术传输数据,服务器负担较小
3.保存聊天记录到php文件(不会被下载)
4.可以设置文字样式
5.显示在线用户
6.支持发送图片
7.完全支持IE6+ ,Firefox,Opera,Safari等主流浏览器

改进
-----------------------------
1.完全解决1.0版客户端内存泄露问题
2.大大减少了用户丢话的概率
3.优化了用户在线的判断标准
4.增加用户关闭聊天窗口的警告,防止误操作
5.增加发图片时候的url验证,防止发送恶意代码

设置
-----------------------------
使用文本编辑器打开程序文件进行具体设置

安装
-----------------------------
将这个程序传到服务器上,输入对应的url就可以了。
如果是Linux主机,请先自行建立 rooms 文件夹,并将此文件夹属性设置成0777

使用
-----------------------------
默认的聊天数据保存路径为 rooms/ 目录(如果没有,程序会自动创建)
调用时后加参数 room=房间名 , 比如 chat.php?room=happy,此时就程序就会自动创建 rooms/happy.php 文件来保存聊天数据。

下载
-----------------------------
http://longbill.cn/down/miniajaxchatroom.zip


完。

阅读:3453 评论: 145 💬
解决IE中flash需要激活才能使用的问题
2008-02-20
   一直以来觉得IE对flash的处理太令人不爽了,干嘛加一个边框,并且要点击激活才能使用flash啊。后来,在网上找到了解决方案。
  具体实施方法如下:

  在网页的 头部 加入 <script src="地址/flash.js" ></script> flash.js 点击这里下载

然后在需要显示flash的地方用 下面代码代替:
<script type="text/javascript">
writeflashhtml("_swf=你的FLASH文件地址", "_width=你的FLASH文件宽度", "_height=你的FLASH文件高度" ,"_wmode=transparent");
</script>

完。

阅读:3157 评论: 4 💬
推荐一个国外开源免费轻量级MVC框架 CodeIgniter
2008-02-20

    CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为 PHP 程序员建立功能完善的 Web 应用程序。如果你是一个使用共享主机,并且为客户所要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架

那么 CodeIgniter 就是你所需要的,如果...

你想要一个小巧的框架。
你需要出色的性能。
你需要广泛兼容标准主机上的各种 PHP 版本和配置(例如 PHP4)。
你想要一个几乎只需 0 配置的框架。
你想要一个不需使用命令行的框架。
你想要一个不需坚守限制性编码规则的框架。
你对 PEAR 这种大规模集成类库不感兴趣。
你不希望被迫学习一门模板语言(虽然可以选择你要求的模板解析器)。
你不喜欢复杂,热爱简单。
你需要清晰、完善的文档。   

  前段时间不小心发现的,觉得非常不错,就尝试使用了一下。但是开始遇到一些问题,主要是 CI 的 index.php 必须放到一个网站的根目录下(不知道这个bug现在修复没有),否则load一些库的时候会出问题。除了这个问题之外,感觉CI真的非常不错。  他们的中文网站是 www.codeigniter.org.cn 我还帮忙翻译了几篇手册。呵呵

完。

阅读:4481 评论: 12 💬
发布 O-blog 3.0 beta
2008-02-19

O-blog 3.0 beta

-----------------------------------------------------
 作者  风色 & Longbill
 版本  3.0 beta
 发布 2008/2/20
 环境 php mysql

------------------------------------------------------
 下载  : http://www.longbill.cn/down/o-blog3beta.rar
 演示 :  http://www.longbill.cn

 Email:   longbill.cn@gmail.com

 支持 :  http://bbs.phpBlog.cn 
  http://www.longbill.cn

 论坛 :  http://bbs.phpBlog.cn
------------------------------------------------------


 创作共用(Creative Commons)
 -----------------------------------------------------
     你可以免费: 拷贝、分发、呈现和表演当前作品;制作
 派生作品 ;
     但是必须基于以下条款:

     * 署名。你必须明确标明作者的名字。
     * 非商业用途。 你不可将当前作品用于商业目的。
     * 保持一致。 如果你基于当前作品更改、变换或构造新
 作品,你应当按照与当前协议完全相同的协议分发最终作品。

     对于任何二次使用或分发,你必须让其他人明确当前作
 品的授权条款

 

 特点
 -----------------------------------------------------
  高效,简洁
  支持生成静态页面
  非常亲和用户的评论表单
  AJAX调用动态数据,使静态与动态完美结合
 

主要新增功能
------------------------------------------------------
//全部使用UTF-8编码
//优化后台运行速度
//新增数据缓存功能
//新增html编辑器
//新增防垃圾留言功能
//新增静态页ajax调用动态数据功能
//新增文章列表ajax显示阅读次数
//新增文章的上下文章链接
//新增归档按年分组闭合功能
//新增针对搜索引擎的副标题功能
//添加 关闭 trackback 选项
//增加后台清空cache功能。
//增加 设置 评论后发表的在前 (最后用户可自定义)。
//调整大图片出现滚动条为自动调整图片大小
//修改后台显示日志列表为置顶的排在前
//后台登陆防暴力破解
//集成PHPCMS文件管理器的编辑器作为模板编辑器
//增加自定义模板变量功能,可以添加广告,备案等自定义变量
//增加热门文章显示
//去掉 rss1 优化rss2.0
//很多其他细节优化


交流 
----------------------------------------------------
  http://bbs.phpblog.cn
  http://www.longbill.cn

模板升级方法
-----------------------------------------------------
http://www.longbill.cn/blog/archives/2008/02/moban.html

 安装(Install)
 -----------------------------------------------------
     1.如果您用的是 LINUX 类型的主机,请设置以下目录
 和文件的权限为 777 ; 如果您用的 WINDOWS 类型的主机,
 那么请直接到第2步。

     ./
     ./cache
     ./archives
     ./admin/mysql.php
     ./admin/class/autolink.php
     ./uploadfiles
     ./templates 及此文件夹下的所有文件(夹)
     ./bak

     2.运行 install.php 文件,安装程序会一步步指导您
 完成安装
     3.删除 install.php 文件。


 管理(Manage)
 -----------------------------------------------------
 后台登陆地址:http://您的 BLOG 地址/admin/
 用户名和密码就是您在安装时填的用户名和密码。


 技术支持(Technology Support)
 -----------------------------------------------------
 如果您在使用的过程中遇到问题,
 请到  http://bbs.phpBlog.cnhttp://www.longbill.cn 寻求帮助

完。

阅读:2723 评论: 96 💬
Copyright © Longbill 2008-2026