昊's profile烂笔头记事BlogGuestbookNetwork Tools Help

Blog


    April 06

    清除隐藏文字(GreaseMonkey 脚本)

    if you find some web page use Hidden Text to make you couldn't copy the text easily,try this!

    清除论坛干扰码,网页的隐藏字,方便拷贝。 功能基本和maxthon的"清除烦恼"插件一样,欢迎大家下载使用。

    本代码并非原创,修改于扩展cleanhide(https://addons.mozilla.org/firefox/3648/)。只是觉得这个小功能,安装扩展很费劲,就改成了greasemonkey脚本。

    安装地址:http://userscripts.org/scripts/show/24811

    April 04

    你爱国吗?请停用NotePAD++

    中国目前最重要的是什么,奥运会!中国最大的特点是什么,爱国!
    尽管国内真的有些不合理的制度,但是中国party的确在为人民做实事。
    notepad++以前一直在用,今天登陆notepad++主页,NotePAD++主页赫然放着“抵制北京2008”!气愤。
    中国内政不用它人干涉!反对台独!反对藏独!反对任何分裂中国的行为!
    网址:http://notepad-plus.sourceforge.net/

    20080404205428299

    March 27

    Baidu - dark blue theme(For Firefox With Greasemonkey or stylish)

    欢迎使用。
    把百度界面改成了蓝黑色,色彩更柔和,不刺眼。
    感谢eilern制作新版百度LOGO。

    使用方法:Firefox安装Greasemonkey 或者 Stylish 扩展。在http://userstyles.org/styles/5941页面安装脚本。

    ---------------更新说明------------------

    20080325 修正搜索页面部分样式,使页面更协调。修正了搜索框背景色。
    修正贴吧颜色。修复贴吧右侧栏目消失的问题。

    20080326 更改首页LOGO为base64编码,本地加载速度更快。

    20080327 修正“我的信息”页面样式

    ----------------------------------------

    www_baidu_com_ -img10

     img11

    img12

    news_baidu_com_ -img13

    March 12

    DouBan Sliding Menu Plugin(动态显示豆瓣导航二级菜单)

    20080312165941720副本

    功能:豆瓣网 导航栏动态显示二级菜单,也就是说再也不用先去点第一级后才能看到二级菜单了.

    使用环境:Firefox + Greasemonkey扩展

    greasemonkey下载:http://addons.mozine.cn/firefox/16/

    脚本地址:http://userscripts.org/scripts/source/23820.user.js (暂存于朋友的服务器,过一段时间要删除掉)

    PS, 看到maxthon有这个扩展,感觉很好用。就写了一个Greasemonkey脚步实现这个功能。大家试试,有问题我再修改。

    December 31

    恢复HTM图标

    我的HTM、HTML图标不知什么时候被改掉了,变成了一个windows的未知图标,在文件夹选项>文件类型里改都不起作用,后来查阅了一下资料,找到了解决的办法:

    原来是注册表中的相关键值被修改或损坏了。

    1:运行regedit,定位到 [HKEY_CLASSES_ROOT\htmlfile\ShellEx\lconHandler] 分支,在右侧窗口中将名为 lconHandler 的键删除。关闭注册表编辑器。

    2:右击桌面IE图标,选择“属性”,然后在“程序”标签下点击“重置web设置”按钮,在弹出的窗口确认,然后关闭设置窗口,这样就可以恢复了。

    December 28

    PHP错误小结(陆续更新中...)

    1. Parse error: syntax error, unexpected '}' in E:\My documents\My Work\zgjdwx\index.php on line 42

    如果“}”出现问题,请检查上一个语句结束时是不是忘记分号“;”。

    December 25

    禁止js文件缓存

    直接把javascript写入页面可以有效的禁止js缓存。

    但是很多时候,我并不想这样做。比如页面是html静态的,而我要引用的js文件是php根据用户登陆情况动态生成的,这个时候js文件就不可以写入html页面。

    例如:<script src="js.php"  type="text/javascript"></script>

    在引用js.php的时候,可以加一个动态的Querystring。类似这种形式:js.php?123455,这样浏览器就会以为每次引用的js文件都是不同的,当然我们的js.php对后面的动态数并不进行处理。

    因此引用代码可以写成下面的形式。我的随机数是用时间产生的。

    <script type="text/javascript">
    var now=new Date();
    var number = now.getSeconds();
    document.write ('\<script src="js.php?'+number+'"\>\</script\>');
    </script>

    November 21

    126,163邮箱,教育网登陆通道

    教育网用户幸福了,有了专用通道。访问速度大大的提高了。

    126邮箱:http://edu.mail.126.com 或者 http://edu.126.com

    163邮箱:http://edu.mail.163.com

    November 20

    豆瓣验证码

    doubanclaima9716e1d6a65afcc

    Cannot modify header information - headers already sent by...解决方法

    今天把PHP代码用记事本保存为utf编码,就出现了下面提示:

    Warning: Cannot modify header information - headers already sent by (output started at E:\My documents\My Work\zgjdwx\test2.php:1) in E:\My documents\My Work\zgjdwx\include\common.inc.php on line 20

    这个错误是因为在header前面有html输出导致的。因为之前程序运行正常,所以排除了程序的问题。

    经过查询,原来是BOM的问题。

    在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符"ZERO WIDTH NO-BREAK SPACE"。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little- Endian的。因此字符"ZERO WIDTH NO-BREAK SPACE"又被称作BOM。

    UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。

    Windows就是使用BOM来标记文本文件的编码方式的。

    PHP也不支持BOM。

    PHP在设计时就没有考虑BOM的问题,也就是说他不会忽略UTF-8编码的文件开头BOM的那三个字符。由于必须在<?或者<?php后面的代码才会作为PHP代码执行,所以这三个字符将会直接输出。

    用ultraedit打开,对ultraedit进行设置:高级-配置-文件处理-Unicode/utf-8检测,所有选项都不选择。然后会发现文件前面有一个“锘?”,删除掉,然后保存为无BOM的utf编码。 也可用Dreamweaver保存为utf编码。

    总结:如果程序中无中文,可以直接使用ANSI编码。如果存在中文,要保存为无BOM的utf编码。切记不要使用记事本来进行转换。

    November 15

    Ajax乱码问题整理

    今天使用AJAXRequest,返回值中的中文总是乱码。创建AJAXRequest对象时,自带的charset方法并不起作用。

    网上搜了一下,用下面的方法轻松解决了问题。

    产生原因
    主要有2个原因
    1 xtmlhttp 返回的数据默认的字符编码是utf-8,如果前台页面是gb2312或者其它编码数据就会产生乱码
    2 post方法提交数据默认的字符编码是utf-8,如果后台是gb2312或其他编码数据就会产生乱码

    解决的办法就是在送出的流里面加一个HEADER,指明送出的是什么编码流,这样XMLHTTP就不会乱搞了。

    PHP:header('Content-Type:text/html;charset=GB2312');
    ASP:Response.Charset("GB2312")
    JSP:response.setHeader("Charset","GB2312");

    附一个PHP的unicode解码程序

    function utfdecode($url) //unicode解码
    {
       preg_match_all('/%u([[:alnum:]]{4})/', $url, $a);
       foreach ($a[1] as $uniord)
       {
           $dec = hexdec($uniord);
           $utf = '';
           if ($dec < 128)
           {
               $utf = chr($dec);
           }
           else if ($dec < 2048)
           {
               $utf = chr(192 + (($dec - ($dec % 64)) / 64));
               $utf .= chr(128 + ($dec % 64));
           }
           else
           {
               $utf = chr(224 + (($dec - ($dec % 4096)) / 4096));
               $utf .= chr(128 + ((($dec % 4096) - ($dec % 64)) / 64));
               $utf .= chr(128 + ($dec % 64));
           }
           $url = str_replace('%u'.$uniord, $utf, $url);
       }
       return urldecode($url);
    }

    Javascript: unterminated string literal解决方法

    Javascript使用document.write(str)进行输出时,常提示下列错误:Error: unterminated string literal。

    通常原因是输出字符str中包含换行符导致的。

    解决方法如下:

    asp:
    str=replace(str,vbcrlf,"",1,-1,1)

    php:
    $str = str_replace("\n", "", $str);
    $str = str_replace("\r", "", $str);

    然后再进行document.write(str)输出。