2008 年 03 月

浏览模式: 标准 | 列表 | 图文
闲来无聊,把所有的字符打印了一遍

闲来无聊,把所有的字符打印了一遍

<?php
set_time_limit( 0 );
echo( '<style>table{font-size: 9pt;}</style>' );
echo( '<table width="100%" border=1>' );
echo( '<tbody><tr>' );
for ( $i = 0; $i < 65535; $i++ ){
if ( $i%20 == 0 ){
echo( '</tr><tr>' );
}
echo( '<td width="5%">'.$i.'-&#' . $i . ';</td>' );
}
echo( '</tbody></table>' );
?>

打印完发现,中文基本上从19968开始,40869就结束了。 共计20901个汉字。

这个是不管你是什么编码都会正确显示的哦。哈哈

jQuery的bind函数

jQuery的bind函数

jQuery学习之bind

在mootools里面,如果要为某个DOM或者HTML标签等绑定一个操作用的是addEvents,移除一个事件的时候用的是removeEvents,在jQuery里面就相对比较简单,直接用bind函数和unbind函数就行了。

例如为一个button添加一个click。可以这样操作

<input type='button' id='myBtn'>

这是一个button,现在我们要为他添加一个事件

<script>
$('#myBtn').bind("click",function(){
alert('click');
});
</script>

这样,我们就为这个button绑定了一个click的事件。

bind函数可以有三个参数,当第二个参数不是一个函数,而是一个数据对象时,它将默认做为bind第三个参数(函数)的参数。例如:

<script>
function showAlert(events){
alert(events.data.foo);
}
$('#myBtn').bind('click',{foo:'click'},showAlert);
</script>

点击时,同样会显示:click

这些就是bind的一些基本用法,当然还有一些方法

比如在绑定方法的时候,用的是return false;可以让这个方法失效

<script>
$('#myBtn').bind('click',function(){
return false;
})
</script>

这样,刚才绑定的click又失效了,不过,这种方法往往用在submit提交的时候比较多。

还有一些方法可以取消默认行为和阻止事件起泡:preventDefault 和stopPropagation

例:

<script>
$('#myBtn').bind('click',function(event){
event.preventDefault();//取消默认的click行为
});
$('#myBtn').bind('click',function(event){
event.stopPropagation();//阻止click事件起泡
});

</script>
百度电台联盟

百度电台联盟

百度在mp3.baidu.com的页面多出了一个链接:电台联盟,初一看,又以为是什么广告呢,结果进去看了一下,原来是一些网络电台的集合体。目前集合的还不是很多,只有19个电台。但是,既然有这个大的一个后盾在搞这所谓的联盟,估计其他一些电台会主动加入吧?百度肯定是不会提供服务器的,而它也只是提供一个链接(虽然其他网站上也有类似的链接,但都是做了一阵之后就突然消失,或者链接不准备了),但效果还是可以的。

下载过龙卷风电台,结果,长时间不用后,里面的电台顺序和节目表居然都对不上号了,实在想不明白。

正好有这个百度电台联盟,就先听听喽。虽然不喜欢百度,但对我有用的东西还是先留着,美其名曰:取其精华,去其糟粕。自我YY一下。

链接:http://list.mp3.baidu.com/radio/index.html#

完美者出的完美设置

以前优化系统几乎都是优化大师,但用了优化大师后,右键菜单的颜色都会变,非得再更改一下皮肤为经典(或其他)才能恢复。虽然功能也比较强大,但确实不太喜欢和使用。

再加上,现在内存已经是白菜价,一些常用的优化内存的,现在几乎也用不到了。用了这么多年的WIN系统,在刚刚装好系统的时候,就会直接把一些不常用的服务关掉,所以这些优化的程序往往都不再使用。同样,现在装系统都是用简化版的,想优化都没有机会,那些系统在安装好的时候都直接优化好了,霍霍。

在cnbeta上看到这个完美设置,本着下死人不偿命的原则下载下来,看了看,觉得相对还是有点用处的,至少有部分功能我还是能够用的上的,象CPUZ、文件备份,插件屏蔽等。

虽然在网上有一些针对完美者的负面评价,但对我来说这款软件有用,那就行了,不是吗?

软件介绍:完美者设置中心是一款系统优化、安全漏洞修补、设置清理的软
件,它能帮助您迅速完成操作系统服务和注册表配置,修补安全漏洞,
实现网络优化设置,使系统达到最优性能。
同时还通过第三方软件对系统性能进行测试调整,使效率事半功倍。

更新历史:
2.01版更新
1.主要是优化了菜单切换速度
2.解决IP地址有的机器无法获取的问题
3.解决时间同步死机的问题
4.解决界面上的BUG
5.解决有些启动项读不出来的问题
6.自动优化中取消在浏览器中打开文件夹优化
7.解决部分杀毒软件误报问题

2.0版更新
1.支持XP,2003,VISTA
2.更新优化项目分类(服务优化,设置优化,IE设置,WMP设置)
3.更新清理/增加系统启动项
4.更新清理服务
5.更新文件Hash计算
6.更新MP3命名修改
7.更新网络时间同步
8.更新序列号设置
9.IP地址设置中增加MAC设置
10.重新筛选了外部工具
11.重写界面
免责声明:
完美设置所调用第三方优化软件,版权为原制作者所有。
第三方软件造成用户数据错误、丢失。本软件不承担任何责任。
如第三软件作者不允许其个人软件共享发布,请与完美者官方网站联系。

表示颜色的英语单词中英文对照[转]

在网上突然看到这张图片,觉得相对比较有用,毕竟CSS手册(苏沈小雨版)的最后也有一个颜色对照,但没有这个直观。都能用吧。正好就是一张图片嘛。本着人人为我,我为人人的观点,偷偷的下载下来,希望对有用的人有点帮助。

PHP学习(二)之详解PHP字符串三种定义方式

PHP学习(二)之详解PHP字符串三种定义方式

  PHP的字符串有三种定义方式:单引号 、双引号 、定界符
  1、单引号:指定一个简单字符串的最简单的方法是用单引号(字符 ')括起来。 在被单引号括起来的字符串中,要再表示一个单引号,需要用反斜线(\)转义,和很多其它语言一样。如果在单引号之前或字符串结尾需要出现一个反斜线,需要用两个反斜线表示。 在单引号括起来的字符串中,所有的其他特殊字符,都将被完整的表示出来,也就是说:单引号字符串中出现的变量和转义序列不会被变量的值替代。

  2、双引号:如果用双引号(")括起字符串,PHP 可以解析更多特殊字符的转义序列:\n (换行 LF 或 ASCII 字符 0x0A(10))、\r (回车(CR 或 ASCII 字符 0x0D(13))、\t (水平制表符 HT 或 ASCII 字符 0x09(9))、\\ (反斜线) 、\$ (美元符号) 、\" (双引号) 、\[0-7]{1,3} (此正则表达式序列匹配一个用八进制符号表示的字符)、\x[0-9A-Fa-f]{1,2} (此正则表达式序列匹配一个用十六进制符号表示的字符 ),除了这些转义符,如果试图转义任何其它字符,反斜线本身也会被显示出来!在 PHP 5.1.1 之前,\{$var} 中的反斜线不会被显示出来。
  当用双引号或者定界符指定字符串时,其中的变量会被解析。 有两种语法,一种简单的和一种复杂的。
  简单语法最通用和方便,它提供了解析变量,数组值,或者对象属性的方法(如果遇到美元符号($),解析器会尽可能多地取得后面的字符以组成一个合法的变量名。如果想明示指定名字的结束,则用花括号把变量名括起来。 同样也可以解析数组索引或者对象属性。对于数组索引,右方括号(])标志着索引的结束。对象属性则和简单变量适用同样的规则,尽管对于对象属性没有像变量那样的小技巧)。
  复杂语法是 PHP 4 引进的,可以用花括号括起一个表达式(事实上,用此语法可以在字符串中包含任何在名字空间的值。仅仅用和在字符串之外同样的方法写一个表达式,然后用 { 和 } 把它包含进来。因为不能转义“{”,此语法仅在 $ 紧跟在 { 后面时被识别(用“{\$”来得到一个字面上的“{$”)。例如:${test},{$test['t']['e']['s']['t']},{$test->test})。

  3、定界符:另一种给字符串定界的方法使用定界符语法(“<<<”),它是 PHP 4 中加入的。。应该在 <<< 之后提供一个标识符,然后是字符串,然后是同样的标识符结束字符串。 结束标识符必须从行的第一列开始。同样,标识符也必须遵循 PHP 中其它任何标签的命名规则:只能包含字母数字下划线,而且必须以下划线或非数字字符开始。 重要的一点必须指出,结束标识符所在的行不能包含任何其它字符,可能除了一个分号(;)之外。这尤其意味着该标识符不能被缩进,而且在分号之前和之后都不能有任何空格或制表符。同样重要的是要意识到在结束标识符之前的第一个字符必须是你的操作系统中定义的换行符。例如在 Macintosh 系统中是 \r。 如果破坏了这条规则使得结束标识符不“干净”,则它不会被视为结束标识符,PHP 将继续寻找下去。如果在这种情况下找不到合适的结束标识符,将会导致一个在脚本最后一行出现的语法错误。 不能用定界符语法初始化类成员。用其它字符串语法替代。
   定界符文本表现的就和双引号字符串一样,只是没有双引号。这意味着在定界符文本中不需要转义引号,不过仍然可以用以上列出来的转义代码。变量会被展开,但当在定界符文本中表达复杂变量时和字符串一样同样也要注意。

PHP学习(二)之类型

PHP学习(二)之类型

在PHP中大致存在以下几种变量类型:布尔型、整型、浮点型、字符串、数组、对象、资源、NULL,甚至还有一些所谓的伪类型:mixed,number,callback。

下面就这几种类型进行一些简单的介绍。

  1、布尔型,即逻辑型变量,只有两种值:true或false(不区分大小写)。在将变量强制转换为布尔型时,以下值被认为是False:布尔值 FALSE、整型值 0(零)、浮点型值 0.0(零)、空白字符串和字符串。以下值被转换为布尔值时被当成false处理:布尔值 FALSE、整型值 0(零)、浮点型值 0.0(零)、空白字符串和字符串 "0" 、没有成员变量的数组、没有单元的对象(仅适用于 PHP 4)、特殊类型 NULL(包括尚未设定的变量)、所有其它值都被认为是 TRUE(包括任何资源)。

  2、整型,几乎就是INT的代名词,一个int是集合 Z = {..., -2, -1, 0, 1, 2, ...} 中的一个数。整型值可以用十进制,十六进制或八进制符号指定,前面可以加上可选的符号(- 或者 +)。 如果用八进制符号,数字前必须加上 0(零),用十六进制符号数字前必须加上 0x。
PHP 中没有整除的运算符。1/2 产生出 float 0.5。可以总是舍弃小数部分,或者使用 round() 函数。 要明示地将一个值转换为 integer,用 (int) 或 (integer) 强制转换。不过大多数情况下都不需要强制转换,因为当运算符,函数或流程控制需要一个 integer 参数时,值会自动转换。还可以通过函数 intval() 来将一个值转换成整型。从布尔值转换时,FALSE 将产生出 0(零),TRUE 将产生出 1(壹)。 从浮点数转换时,数字将被取整(丢弃小数位)。 如果浮点数超出了整数范围(通常为 +/- 2.15e+9 = 2^31),则结果不确定,因为没有足够的精度使浮点数给出一个确切的整数结果。在此情况下没有警告,甚至没有任何通知! 在 Linux 下返回结果是最小负数(-2147483648),而在 Windows 下返回结果是零(0)。

  3、浮点型(也叫浮点数,双精度数或实数),浮点数的字长和平台相关,尽管通常最大值是 1.8e308 并具有 14 位十进制数字的精度(64 位 IEEE 格式)。 显然简单的十进制分数如同 0.1 或 0.7 不能在不丢失一点点精度的情况下转换为内部二进制的格式。这就会造成混乱的结果:例如,floor((0.1+0.7)*10) 通常会返回 7 而不是预期中的 8,因为该结果内部的表示其实是类似 7.9999999999...。 这和一个事实有关,那就是不可能精确的用有限位数表达某些十进制分数。例如,十进制的 1/3 变成了 0.3333333. . .。所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。如果确实需要更高的精度,应该使用任意精度数学函数或者 gmp 函数。

4、字符串,是一系列字符。在 PHP 中,字符和字节一样,也就是说,一共有 256 种不同字符的可能性。这也暗示 PHP 对 Unicode 没有本地支持。注意: 一个字符串变得非常巨大也没有问题,PHP 没有给字符串的大小强加实现范围,所以完全没有理由担心长字符串。
字符串可以用三种字面上的方法定义。 单引号 、双引号 、定界符[由于这三个相对比较复杂,以后单独介绍]。可以用 (string) 标记或者 strval() 函数将一个值转换为字符串。当某表达式需要字符串时,字符串的转换会在表达式范围内自动完成。例如当使用 echo() 或者 print() 函数时,或者将一个变量值与一个字符串进行比较的时候。布尔值 TRUE 将被转换为字符串 "1",而值 FALSE 将被表示为 ""(即空字符串)。这样就可以随意地在布尔值和字符串之间进行比较。 整数或浮点数数值在转换成字符串时,字符串由表示这些数值的数字字符组成(浮点数还包含有指数部分)。数组将被转换成字符串 "Array",因此无法通过 echo() 或者 print() 函数来输出数组的内容。。 对象将被转换成字符串 "Object"。如果因为调试需要,需要将对象的成员变量打印出来,请阅读下文。如果希望得到该对象所依附的类的名称,请使用函数 get_class()。自 PHP 5 起,如果合适可以用 __toString() 方法。 资源类型总是以 "Resource id #1" 的格式被转换成字符串,其中 1 是 PHP 在运行时给资源指定的唯一标识。如果希望获取资源的类型,请使用函数 get_resource_type()。 NULL 将被转换成空字符串。正如以上所示,将数组、对象或者资源打印出来,并不能提供任何关于这些值本身的有用的信息。请参阅函数 print_r() 和 var_dump(),对于调试来说,这些是更好的打印值的方法。 可以将 PHP 的值转换为字符串以永久地储存它们。这种方法被称为序列化,可以用函数 serialize() 来完成该操作。如果在安装 PHP 时建立了 WDDX 支持,还可以将 PHP 的值序列化为 XML 结构。
当一个字符串被当作数字来求值时,根据以下规则来决定结果的类型和值。 如果包括“.”,“e”或“E”其中任何一个字符的话,字符串被当作 float 来求值。否则就被当作整数。该值由字符串最前面的部分决定。如果字符串以合法的数字数据开始,就用该数字作为其值,否则其值为 0(零)。合法数字数据由可选的正负号开始,后面跟着一个或多个数字(可选地包括十进制分数),后面跟着可选的指数。指数是一个“e”或者“E”后面跟着一个或多个数字。 不要指望在将一个字符转换成整型时能够得到该字符的编码(可能也会在 C 中这么做)。如果希望在字符编码和字符之间转换,请使用 ord() 和 chr() 函数。

  4、数组,PHP 中的数组实际上是一个有序图。图是一种把 values 映射到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组来使用,或列表(矢量),散列表(是图的一种实现),字典,集合,栈,队列以及更多可能性。因为可以用另一个 PHP 数组作为值,也可以很容易地模拟树。 解释这些结构超出了本手册的范围,但对于每种结构至少会发现一个例子。要得到这些结构的更多信息,建议参考有关此广阔主题的外部著作。
可以用 array() 语言结构来新建一个 array。它接受一定数量用逗号分隔的 key => value 参数对。 key 可以是 integer 或者 string。如果键名是一个 integer 的标准表达方法,则被解释为整数(例如 "8" 将被解释为 8,而 "08" 将被解释为 "08")。key 中的浮点数被取整为 integer。PHP 中没有不同的数字下标和关联下标数组,数组的类型只有一种,它可以同时包含整型和字符串型的下标。 值可以是任何值。
如果给一个当前最大键名是负值的数组添加一个新值,则新生成的的索引将为零(0)。以前新生成的索引为当前最大索引加一,和正值的索引相同。
使用 TRUE 作为键名将使 integer 1 成为键名。使用 FALSE 作为键名将使 integer 0 成为键名。使用 NULL 作为键名将等同于使用空字符串。使用空字符串作为键名将新建(或覆盖)一个用空字符串作为键名的值,这和用空的方括号不一样。
可以通过明示地设定值来改变一个现有的数组。 这是通过在方括号内指定键名来给数组赋值实现的。也可以省略键名,在这种情况下给变量名加上一对空的方括号(“[]”)。 $arr[key] = value;$arr[] = value;// key 可以是 integer 或者 string// value 可以为任何值。
如果 $arr 还不存在,将会新建一个。这也是一种定义数组的替换方法。要改变一个值,只要给它赋一个新值。如果要删除一个键名/值对,要对它用 unset()。unset() 函数允许取消一个数组中的键名。要注意数组将不会重建索引。
注意: 如上所述,如果给出方括号但没有指定键名,则取当前最大整数索引值,新的键名将是该值 + 1。如果当前还没有整数索引,则键名将为 0。如果指定的键名已经有值了,该值将被覆盖。
对于任何的类型:整型、浮点、字符串、布尔和资源,如果将一个值转换为数组,将得到一个仅有一个元素的数组(其下标为 0),该元素即为此标量的值。 如果将一个对象转换成一个数组,所得到的数组的元素为该对象的属性(成员变量),其键名为成员变量名。 如果将一个 NULL 值转换成数组,将得到一个空数组。
直接改变数组的值在 PHP 5 中可以通过引用传递来做到。之前的版本需要需要采取别的方法。需要注意数组的赋值总是会涉及到值的拷贝。这还意味着在 current() 以及类似函数中使用的内部数组指针会被重置。需要在复制数组时用引用符号(&)。

  5、对象,可以用new运算符将对象实例化(由于对象太庞大,这里不作介绍)
如果将一个对象转换成对象,它将不会有任何变化。如果其它任何类型的值被转换成对象,内置类 stdClass 的一个实例将被建立。如果该值为 NULL,则新的实例为空。数组转换成对象将使键名成为属性名并具有相对应的值。对于任何其它的值,名为 scalar 的成员变量将包含该值。

6、资源,是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。所有这些函数及其相应资源类型见附录。 注意: 资源类型是 PHP 4 引进的。 由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此无法将其它类型的值转换为资源。由于 PHP4 Zend 引擎引进了资源计数系统,可以自动检测到一个资源不再被引用了(和 Java 一样)。这种情况下此资源使用的所有外部资源都会被垃圾回收系统释放。由此原因,很少需要用某些 free-result 函数来手工释放内存。注意: 持久数据库连接比较特殊,它们不会被垃圾回收系统破坏。

7、NULL,特殊的 NULL 值表示一个变量没有值。NULL 类型唯一可能的值就是 NULL。注意: NULL 类型是 PHP 4 引进的。 在下列情况下一个变量被认为是 NULL: 被赋值为 NULL、尚未被赋值、被 unset()。 NULL 类型只有一个值,就是大小写敏感的关键字 NULL。

伪类型暂时不作介绍

判断JS对象是否存在

判断JS对象是否存在

在WEB应用中,可能会经常使用一些JS框架,或者使用一些已经存在的变量,如果我全程参与开发,那么自然不存在需要判断变量是否存在的问题,但如果多人开发,或者是写一框架,最后由别人运行,那么势必需要在运行前判断某些我需要用到的变量或者对象啥的是否存在。

最后我的判断方法是采用了Javascript的标准判断,if(typeof(Test) == 'undefined')可以得知是否存在这个变量,当然直接用if(typeof(Test) == 'object')就可以判断是不是对象了。

看了流年写的Base.js才发现,原来也可以这样
function is_object(obj) {
return (obj.constructor.toString().indexOf("Object")!= -1);
}

毕竟所有的东西,在JS里几乎都可以算是对象,所以这样也能够来进行判断,学习一下……

不过,相对而言,应该是 typeof 更快捷吧

PHP学习(一)之基本语法

PHP学习(一)之基本语法

当 PHP 解析一个文件时,会寻找开始和结束标记,标记告诉 PHP 开始和停止解释其中的代码。此种方式的解析可以使 PHP 嵌入到各种不同的文档中,凡是在一对开始和结束标记之外的内容都会被 PHP 解析器忽略。大多数情况下 PHP 都是嵌入在 HTML 文档中的,当 PHP 碰到结束标记 ?> 时,就简单地将其后的内容原样输出直到碰到下一个开始标记为止。对输出大块的文本而言,脱离 PHP 解析模式通常比将所有内容用 echo() 或者 print() 输出更有效率。

可以在 PHP 中使用四对不同的开始和结束标记。其中两种,<?php ?> 和 <script language="php"> </script> 总是可用的。另两种是短标记和 ASP 风格标记,可以在 php.ini 配置文件中打开或关闭。尽管有些人觉得短标记和 ASP 风格标记很方便,但移植性较差,通常不推荐。 (短标签可能大家用的比较多,即:<??>,在discuz的模版处理类中用的非常多,所以,如果服务器上关闭了短标签,discuz几乎是不能使用的。)

注意: 此外注意如果将 PHP 嵌入到 XML 或 XHTML 中则需要使用 <?php ?> 以保持符合标准。

短标记(<??>)仅在通过 php.ini 配置文件中的指令 short_open_tag 打开后才可用,或者在 PHP 编译时加入了 --enable-short-tags 选项。

注意: 如果用 PHP 3 还可以通过 short_tags() 函数激活使用短标记。此方法只适用于 PHP 3!

ASP 风格标记(<%%>)仅在通过 php.ini 配置文件中的指令 asp_tags 打开后才可用。

注意: 对 ASP 风格标记的支持是 3.0.4 版添加的。

注意: 在以下情况应避免使用短标记:开发需要发行的程序或者库,或者在用户不能控制的服务器上开发。因为目标服务器可能不支持短标记。为了代码的移植及发行,确保不要使用短标记。

同 C 或 Perl 一样,PHP 需要在每个语句后用分号结束指令。一段 PHP 代码中的结束标记隐含表示了一个分号;在一个 PHP 代码段中的最后一行可以不用分号结束。如果后面还有新行,则代码段的结束标记包含了行结束。

注意: 文件末尾的 PHP 代码段结束标记可以不要,有些情况下当使用 include() 或者 require() 时省略掉会更好些,这样不期望的白空格就不会出现在文件末尾,之后仍然可以输出响应标头。在使用输出缓冲时也很便利,就不会看到由包含文件生成的不期望的白空格。

PHP的注释也和C或者PERL一样,它 支持 C,C++ 和 Unix Shell 风格(Perl 风格)的注释。例如:

<?php
echo "This is a test"; // This is a one-line c++ style comment
/* This is a multi line comment
yet another line of comment */
echo "This is yet another test";
echo
'One Final Test'; # This is a one-line shell-style comment
?>

单行注释仅仅注释到行末或者当前的 PHP 代码块,视乎哪个首先出现。这意味着在 // ... ?> 或者 # ... ?> 之后的 HTML 代码将被显示出来:?> 跳出了 PHP 模式并返回了 HTML 模式,// 或 # 并不能影响到这一点。如果启用了 asp_tags 配置选项,其行为和 // %> 或 # %> 相同。不过,</script> 标记在单行注释中不会跳出 PHP 模式。

<h1>This is an <?php # echo "simple";?> example.</h1>
<p>The header above will say 'This is an example'.

C 风格的注释在碰到第一个 */ 时结束。要确保不要嵌套 C 风格的注释。试图注释掉一大块代码时很容易出现该错误。

<?php
/*
echo "This is a test"; /* This comment will cause a problem */
*/
?>