jQuery 工具类函数

获取浏览器的名称与版本信息

在jQuery中,通过$.browser对象可以获取浏览器的名称和版本信息,如$.browser.chrome为true,表示当前为Chrome浏览器,$.browser.mozilla为true,表示当前为火狐浏览器,还可以通过$.browser.version方式获取浏览器版本信息。

例如,调用$.browser对象,获取浏览器名称并显示在页面中,如下图所示:

在浏览器中显示的效果:

从图中可以看出,通过调用$.browser对象,检测当前浏览器的所属类型,并根据类型不同,将浏览器名称保存至变量中,最后将变量的内容显示在页面中。

检测浏览器是否属于W3C盒子模型

浏览器的盒子模型分为两类,一类为标准的w3c盒子模型,另一类为IE盒子模型,两者区别为在Width和Height这两个属性值中是否包含padding和border的值,w3c盒子模型不包含,IE盒子模型则包含,而在jQuery 中,可以通过$.support.boxModel对象返回的值,检测浏览器是否属于标准的w3c盒子模型。

例如,根据页面的特征,并通过$.support.boxModel属性的返回值,显示当前浏览器是否属于标准的w3c盒子模型,如下图所示:

在浏览器中显示的效果:

从图中可以看出,由于打开的页面属于标准的w3c盒子模型,因此,在调用$.support.boxModel属性时,返回true值。

检测对象是否为空

在jQuery中,可以调用名为$.isEmptyObject的工具函数,检测一个对象的内容是否为空,如果为空,则该函数返回true,否则,返回false值,调用格式如下:

$.isEmptyObject(obj);

其中,参数obj表示需要检测的对象名称。

例如,通过$.isEmptyObject()函数,检测某个指定的对象是否为空,并将结果显示在页面中,如下图所示:

在浏览器中显示的效果:

从图中可以看出,由于对象obj的内容为空,因此,$.isEmptyObject()函数检测obj时,返回true,并根据返回的true值在页面中显示对应的文字内容。

检测对象是否为原始对象

调用名为$.isPlainObject的工具函数,能检测对象是否为通过{}new Object()关键字创建的原始对象,如果是,返回true,否则,返回false值,调用格式为:

$.isPlainObject (obj);

其中,参数obj表示需要检测的对象名称。

例如,通过$.isPlainObject()函数,检测某个指定的对象是否为原始,并将结果显示在页面中,如下图所示:

在浏览器中显示的效果:

从图中可以看出,由于自定义的obj_a和obj_b都是属于原始对象,因此,当调用$.isPlainObject()函数检测这两个对象时,都返回true值。

检测两个节点的包含关系

调用名为$.contains的工具函数,能检测在一个DOM节点中是否包含另外一个DOM节点,如果包含,返回true,否则,返回false值,调用格式为:

$.contains (container, contained);

参数container表示一个DOM对象节点元素,用于包含其他节点的容器,contained是另一个DOM对象节点元素,用于被其他容器所包含。

例如,通过$.contains()函数,检测两个节点对象间是否存在包含关系,并将检测的结果显示在页面中,如下图所示:

在浏览器中显示的效果:

从图中可以看出,documentElement是DOM根结点,而body只是根结点下的子节点之一,它们之间存在包含关系,因此,返回true值,并显示“包含”字样。

字符串操作函数

调用名为$.trim的工具函数,能删除字符串中左右两边的空格符,但该函数不能删除字符串中间的空格,调用格式为:

$.trim (str);

参数str表示需要删除左右两边空格符的字符串。

例如,通过$.trim()函数,除掉一个两边均有空格符的字符串,并将其执行前后的字符长度都显示在页面中,如下图所示:

在浏览器中显示的效果:

从图中可以看出,由于文本框中的字符串前后分别有一个空格字符,因此,它的字符长度为13,调用trim()函数删除字符串前后空格之后,字符串长度则变为11。

URL操作函数

调用名为$.param的工具函数,能使对象或数组按照key/value格式进行序列化编码,该编码后的值常用于向服务端发送URL请求,调用格式为:

$.param (obj);

参数obj表示需要进行序列化的对象,该对象也可以是一个数组,整个函数返回一个经过序列化编码后的字符串。

例如,通过$.param()函数,对指定的对象进行序列化编码,使其成为可执行传值的URL地址,并将该地址显示在页面中,如下图所示:

在浏览器中显示的效果:

从图中可以看出,通过调用工具函数$.param()可以将一个对象进行序列化并编码成可以在地址栏中直接执行的URL字符串。

param和serialize的区别是什么?前者是对任意的参数进行URL地址格式的转换,而后者仅属于form提交的数据转换。

使用$.extend()扩展工具函数

调用名为$.extend的工具函数,可以对原有的工具函数进行扩展,自定义类级别的jQuery插件,调用格式为:

$.extend ({options});

参数options表示自定义插件的函数内容。

例如,调用$.extend()函数,自定义一个用于返回两个数中最大值的插件,并在页面中将插件返回的最大值显示在页面中,如下图所示:

在浏览器中显示的效果:

从图中可以看出,当点击“计算”按钮时,先调用自定义插件中名为“MaxNum”的方法,计算并返回两个数值中的最大值,然后,将该值显示在页面中。

使用$.extend()扩展Object对象

除使用$.extend扩展工具函数外,还可以扩展原有的Object对象,在扩展对象时,两个对象将进行合并,当存在相同属性名时,后者将覆盖前者,调用格式为:

$. extend (obj1,obj2,…objN);

参数obj1至objN表示需要合并的各个原有对象。

例如,调用$.extend()函数对两个已有的对象进行合并,并将合并后的新对象元素内容显示在页面中,如下图所示:

在浏览器中显示的效果:

从图中可以看出,当两个对象通过$.extend()函数扩展合并后,返回一个包含两个对象中全部属性元素的新对象,相同名称的“name”属性,前者被后者覆盖。

PHP函数

自定义函数

PHP内置了超过1000个函数,因此函数使得PHP成为一门非常强大的语言。大多数时候我们使用系统的内置函数就可以满足需求,但是自定义函数通过将一组代码封装起来,使代码进行复用,程序结构与逻辑更加清晰。

PHP函数的定义方式:
1.使用关键字“function”开始
2.函数名可以是字母或下划线开头:function name()
3.在大括号中编写函数体:

通过上面的步骤,我们就定义了一个简单的函数,当我们需要的时候,就可以在代码中调用这个函数,调用方法为函数名+参数,例如:name();

函数的参数

PHP的函数可以没有参数,也可以有若干个参数,多个参数称之为参数列表,采用逗号进行分割,参数类似于一个变量,调用时用来传递数据到函数体中。通过传递参数可以使函数实现对参数的运算,得到我们想要的结果。

参数的变量名可以自由指定,但最好能够表达相关的意思,常用的设定参数的方法为:

返回值

使用return关键字可以使函数返回值,可以返回包括数组和对象的任意类型,如果省略了 return,则默认返回值为 NULL。

返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行,因此下面函数的返回值跟上面的函数是一样的。

函数不能返回多个值,但可以通过返回一个数组来得到类似的效果。

可变函数

所谓可变函数,即通过变量的值来调用函数,因为变量的值是可变的,所以可以通过改变一个变量的值来实现调用不同的函数。经常会用在回调函数、函数列表,或者根据动态参数来调用不同的函数。可变函数的调用方法为变量名加括号。

可变函数也可以用在对象的方法调用上。

内置函数

内置函数指的是PHP默认支持的函数,PHP内置了很多标准的常用的处理函数,包括字符串处理、数组函数、文件处理、session与cookie处理等。

我们先拿字符串处理函数来举例,通过内置函数str_replace可以实现字符串的替换。下面的例子将“jobs”替换成“steve jobs”:

另外一些函数是通过其他扩展来支持的,比如mysql数据库处理函数,GD图像处理函数,邮件处理函数等,PHP默认加载了一些常用的扩展库,我们可以安装或者加载其他扩展库来增加PHP的处理函数。

判断函数是否存在

当我们创建了自定义函数,并且了解了可变函数的用法,为了确保程序调用的函数是存在的,经常会先使用function_exists判断一下函数是否存在。同样的method_exists可以用来检测类的方法是否存在。

类是否定义可以使用class_exists。

PHP中有很多这类的检查方法,例如文件是否存在file_exists等。

 

 

PHP内置字符串处理函数

字符串的特点
1. 其它类型的数据用在字符串处理函数中,会自动将其转为字符串,再进行处理substr(“string”, 2, 4);
substr(123456789, 2, 4); //这里的123456789会被转成字符串进行处理
2. 可以将字符串视为数组,当作字符集合来看待
$str=”abcdefg”;
echo $str[2];   //输出c
echo $str{2};  //为避免与数组混淆,通常使用大括号{}代替[]

强大的PHP中内置字符串处理函数
1. 常用的字符串输出函数
echo()   输出一个或多个字符串
print()   功能和echo()相同,但它拥有返回值,执行效率低于echo()
die() — exit();  输出字符串并退出程序
printf()  格式化字符串(例如printf(“—%s—-%x”,$str1,$str2))
sprintf() 返回格式化的字符串
printf(),sprintf()常用格式有:
%%按百分数输出
%b二进制输出
%c字符输出
%d整数输出
%f浮点数输出(可指定小数点个数,如%.2f表示小数点后保留两位)
%o八进制输出
%x十六进制输出
%s字符串输出(可使用指定字符如#将字符串填充满指定位数,以#号和20位为例,%’#20s表示在左边填充,%’#-20s表示在右边填充)
2. 常用的字符串格式化函数
ltrim()  去除字符串左侧空格(包括tab等)
rtrim() 去除字符串右侧空格(包括tab等)
trim()  去除字符串两侧空格(包括tab等)、
以上三个函数可传递一个参数用于去除指定的内容,如去除左侧#号,ltrim($str,’#’)
str_pad() 在左侧/右侧/两边填充指定字符

字母大小写相关的函数:
strtolower() 将所有字符串转为小写
strtoupper() 将所有字符串转为大写
ucfirst() 将首字母转为大写
ucwords()将字符串每个单词首字母转为大写

和HTML标签相关的字符串格式化函数
nl2br() 将回车或其它语言中的\n转为html的br标签执行换行
htmlentities()
htmlspecialchars 直接输出html特殊字符,而不去执行html代码
stripslashes() 删除反斜线
strip_tags() 删除html,php,xml的标签

其它的字符串格式化函数
number_format() 设置数字格式
strrev()反转字符串
md5()将字符串使用MD5加密计算
md5_file()对文件进行MD5加密

注意:在PHP中所有字符串处理函数,都不是在原字符串上修改, 而是返回一个新格式化后的字符串。

字符串比较函数(大于返回1,小于返回-1,等于返回0)

strcmp() 按字节顺序比较
strcasecmp() 按字节顺序比较(忽略大小写)
strnatcmp() 按自然数排序比较
strnatcasecmp() 按自然数排序比较(忽略大小写)

PHP中如何声明函数

函数的定义:函数是一个被命名的独立的代码段,它执行特定的任务并可以给调用函数的程序返回值。

使用函数的好处有:程序可重复利用,利于程序的维护,提高软件的开发效率和可靠性,控制程序的复杂性。

函数的声明时括号内可带参数或不带参数

函数必须在调用后才能执行,但可在声明前调用也可声明后调用。函数名命名和变量一样(比如第二个单词开始首字母大写),并且函数名不能重复(包括自定义函数和系统函数)。通过向函数传递不同参数可以改变函数执行的行为,参数包括形参和实参。形参是在声明函数时声明的参数,实参是调用函数时传递给形参的参数值。

函数可通过使用return语句来返回数据,但注意函数执行到return语句时就不会再执行后面的代码,因而可以使用return语句结束函数的执行。

函数名的作用:便于调用函数即开使执行函数,向函数中传递数据,使用函数名返回值。

PHP函数的范围

局部变量:在函数中声明的变量就是局部变量,只能在函数内部使用。

全局变量:在函数外声明,在变量声明以后直到整个脚本结束前都可以使用。

PHP的变量无法区分声明还是使用,在PHP中使用全局变量要通过global 关键字将这个全局变局包含到函数中才能使用,并且函数使用全局变量的语句应在使用global声明后方才有效。

PHP的静态变量

静态变量只能声明在函数和类中,不能在全局声明,声明静态变量在变量前添加static。使用静态变量可以让一个变量在同一个函数的多次调用中使用。

静态变量保存在静态代码段中,可在一个函数多次调用之间共用,但只在第一次调用函数时声明在内存,以后再调用,就不再声明,而是直接使用。

变量函数

也称可变函数,如果一个变量后有括号(如$var()),就将寻找与变量值同名的函数。

函数的使用

函数的功能决定是否使用该函数,函数的参数如有几个参数传什么样的值决定如何调用函数,函数的返回值决定调用后怎么处理该函数。PHP包含有2000个以上的系统函数,都可以通过名称直接使用,一般在系统函数无法满足需求时才去自定义函数。通常如有下几种函数

1. 常规函数
bool copy ( string source, string dest )
2. 带有mixed , mixed表示可以传递任何类型的数据
bool chown ( string filename, mixed user )
3. 带有&参数的函数, 表示引用赋值, 这个参数不能传递值,只能传递一个变量,然后函数将变量的值改变,在使用这个变量时,值也是变化的。
bool arsort ( array &array [, int sort_flags] )

4.默认函数 带有[]的函数, 表示这个参数是可选的,如果传递了值就使用所传递的值,如果没有传值则使用默认值,默认值为直接在声明函数时,给参数赋的初值。参数中有可选值和必须值, 默认值必须从后向前设置。
bool arsort ( array &array [, int sort_flags] )

5. 带有…的参数函数, …表示可以传递任意多个参数(使用func_get_args()函数可获取函数中的参数)
int array_unshift ( array &array, mixed var [, mixed …] )

6. 回调函数 带有callback, 就是调用这个函数时需要传递一个函数进来(函数名,函数名字串)
array array_filter ( array input [, callback callback] )

内部函数:PHP可以在函数内部再声明函数,其目的就是在函数的内部调用,用来帮助外部函数完成一些子功能。

递归函数:就是函数在内部调用自身

重用函数(使用自己定义的函数库)

需要借助于函数或系统指令require(用于静态包含 ),include(用于动态包含),require_once和include_once(避免重复包含导致函数重复定义等报错)