根据PHP手册,函数的顺序:
1、addcslashes(string $str, string $checklist), 以C语言风格使用反斜线转义字符串中的字符。
这个函数可以指定哪一些字符进行转义,也就是指定哪一些字符要加上反斜杆(或是用八进制来表示,如:/0)。
参数checklist列表的元素定义了要转义的字符,而str则是待转义的字符串。
注意:1、".."用于选取ASC码表的范围,如 A..z表示ASC码表中从A到z之间的所有字符都会被转义。
2、".."右边字符的ASC值要比左边的大,如z..A是错误的表示法。因为ASC码表中z在A的后面。
3、PHP中预定义的转义字符只有四个,分别是/0,/r,/t,/n。这意味着在双引号 所包含的字符串中/0,/r,/t,/n都表示一个字符。
4、设置checklist时,注意使用单引号与使用双引号是有很大的区别的。双引号会进行转义,单引号是不会的。
例: echo addcslashes("zoo['.'@]", 'A..z'); ///z/o/o/['.'@/] 注意[]两个都是A..z之间的字符,所以会被转义。
echo addcslashes($str, "/0../377"); //所有字符都会被转义,要注意"/0..377"是用双引号的,如果用单引号意义就不同了。
2、string stripcslashes(string $str) 作用与addcslashes函数相反。
3、int ord(string $str) 返回$str中第一个字符的ASC码十进制值。
注意:1、只提取$str第一个字符。所以就算你输入一字符串也只提取一个字符。
2、要注意双引号与单引号所包含的字符串的区别,一个有解析,一个只按字面意思原样输出。还要注意,四个预定义转义字符。
例:echo ord("/n"); // 10
4、string chr(int $ascii) 与ord函数相反。用于把ASC码数值转化为字符。
例: echo chr(79); // O
5、string addslashes(string $str) 对',",/ 这些符号进行转义。
6、string stripslashes(string $str)与addslashes相反。
字符转义的注意点:
(1)、/是要根据后面所跟的字符,才能确定是否起转义作用的。在双引号中,后面跟:n,0,r,t,/,"这些字符时,都具有转义的作用。而跟0|x时,就要注意是否可以转义。跟0是可能是8表示八进制转义字符如/075表示=。跟x时,可能表示的是十六进制转义字符如:/x75表示u。
在单引号中:后面跟 ',/ 时才具有转义的作用,其他的都没有。
7、string bin2hex(string $str) 把二进制数转化为十六进制数。
注意:转化时,会先把$str字符转化为二进制字符,再转化为十六进制。转化以字节方式进行,高四位字节优先。(后面这句话是手册里的内容,不明白,如果哪一位高手知道,可以留一下言讲解一下。 感激不尽。)
8、chop()与rtrim() , chop()是rtrim的别名。 (chop英文是砍、斩的意思)
string rtrim(string $str[, string $charlist]): 在没有第二个参数$charlist时, 这个函数会把$str右边所有的,/0, 空格,/t,/n,/r,/x0B(垂直制表符,垂直制表符目前打印机中才会使用到。垂直制表符真正的意图是能垂直地往上移,而不是往下移.),都去掉。
例:echo chop("Luffy/n/t/0 /x0B"); //Luffy
echo rtrim("Luffy/n/t/0 /x0B");//Luffy
9、string chunk_split(string $body [, int $chunklen[, string $end]]) 把字符串分割成小块。
本函数不会修改原来的$body字符串,而是生成一个新的字符串。也就是说传入的字符串不变。(具体什么用途待补充。。。)
10、string convert_cyr_string (string $str, string $from , string $to) 将字符串由一种Cyrillic字符转换为另一种
什么是Cyrillic字符:(cyrillic意思古代斯拉夫语的字母,也称西里尔字母),可参考http://en.wikipedia.org/wiki/Cyrillic_alphabet
这个函数支持:
其中$from, $to都是单个字符,也就是上面提供的这些字符。如果你输入的不只一个字符,那么就用第一个字符来当作参数。同时,如果提供的参数不是上面提到的那些字符的话,会提示warning级别的错误。
这个函数不改变原有字符。
例:echo convert_cyr_string("编程语言", "a", "w"); // �+��������
输出就是上面的字符,很怪是吧。 最后面的附件里头有上面那些字符集的说明。
11、string convert_encode(string $str) 把字符串按uuencode算法进行uuencode编码。
uuencode: 是一种编码。它可以把二进制文件转化成为文本文件,以便用于邮件发送。收到这种文件时,可以通过uudecode进行解码。
例:echo convert_uudecode ( "+22!L;W9E(%!(4/"$`/n`" ); // I love PHP!
12、string convert_decode(string $data) 与convert_encode的作用相反。
13、mixed count_chars(string $string[, int mode]) 返回字符串中,所有字符的信息。
这个函数用于统计字符串中各个字节出现的次数。它会根据mode的值返回不同的值。
mode = 0: 这是默认的设置, 这个设置会返回以字节值(ASC码数值)为下标,以出现次数为值的数组,这个数组包含所有的字节值出现的情况,也就是说,ASC码表中的所有值都会列出。
例:
$data = "PHP";
foreach (count_chars($data, 0) as $i => $val) {
echo "There were $val instance(s) of /"" , chr($i) , "/" in the string./n";
}
输出: 输出的是256行字串
前面省略
There were 0 instance(s) of "F" in the string.
There were 0 instance(s) of "G" in the string.
There were 1 instance(s) of "H" in the string.
There were 0 instance(s) of "I" in the string.
There were 0 instance(s) of "J" in the string.
There were 0 instance(s) of "K" in the string.
There were 0 instance(s) of "L" in the string.
There were 0 instance(s) of "M" in the string.
There were 0 instance(s) of "N" in the string.
There were 0 instance(s) of "O" in the string.
There were 2 instance(s) of "P" in the string.
There were 0 instance(s) of "Q" in the string.
There were 0 instance(s) of "R" in the string.
后后省略
mode = 1: 只返回出现次数大于0的数组。
例:
foreach (count_chars($data, 1) as $i => $val) {
echo "There were $val instance(s) of /"" , chr($i) , "/" in the string./n";
}
输出:
There were 1 instance(s) of "H" in the string.
There were 2 instance(s) of "P" in the string.
mode = 2: 只返回出现次数等于0的数组。
mode = 3: 返回由在字符串中出现的字符所组成的字符串,按asc码顺序排序。
例:
$data = "PHP is a world!";
echo count_chars($data, 3);
输出: !HPadilorsw (注意这个字符串的最前面是一个空格,空格在ASC码表值是32。)
mode = 4: 返回没有在字符串中出现的字符组成的字符串。
注意: 1、它返回的是以一个字节(8位)所能表示的所有字符的集或子集。也就是ASC码值0-255之间的值
2、汉字算两个字节,所以会被拆开。
14、int crc32(string $data) 计算crc32循环冗余校验码的多项式。
了解crc: http://zhidao.baidu.com/question/5381768.html
http://baike.baidu.com/view/410181.htm
15、string crypt(string $data[, string $salt]) 用于加密数据,其中salt可以指定使用什么加密算法。如果没有提供salt那么会随机的使用支持的加密算法。
目前支持的加密算法有:
标准DES加密算法, 拓展DES加密算法, MD5加密算法, Blowfish加密算法。
salt: (CRYPT_STD_DES) (CRYPT_EXT_DES) (CRYPT_MD5) (CRYPT_BLOWFISH)
16、void echo (string $arg1 [, $string $arg2...])。输出所有的参数。
echo是一种语言结构而不是一个函数。
1、echo不能用于变量函数中。如$var = echo;
2、echo如果带有多个参数时,不能使用括号。比如echo ("你好","PHP世界")。这是一个错误的语法。你可以使用逗号来带多个参数时,如 echo "你好","PHP世界";
3、如果你在php.ini里开启了short_open_tag, 这个短标签语法的话,那么可以用=?>来代替echo;
例:echo ('21'.'32'); // 2132 (注意括号里头是连接号.而不是逗号,如果用逗号的话是错误的)
echo '21','32'; // 2132 (多个参数时,不能使用括号)
// Because echo does not behave like a function, the following code is invalid.
( $some_var ) ? echo 'true' : echo 'false' ; //这个结构是错误的。
17、int print(string $arg) ; 输出一个字串。
与echo的区别:
1、echo 可以输出多个参数,而print只能带一个。如:print "PHP","World"; //这个句子是错误的。(注意这里是用逗号连接的)
2、print有返回值,且返回值永远是1。而echo没有。
3、print可以这样调用 :
1 ? print "PHP" : print "Jsp"; //PHP
var_dump(print "php"); //PHPphpint(1)
而echo是不行的。
18、int printf(string $format[, mixed $args [, mixed ...]]) 输出格式化的字串,并返回输出字符串的长度。
这个函数的功能及格式与sprintf基本相同。唯一的区别是 printf输出字符串并返回字符串的长度。而sprintf返回字符串,而且不 输出。
下面来说明一下$format中可以带的一些参数, 注意 ,$format可以同时使用下面一个或是多个参数,但是参数必须按我下面介绍的顺序进行添加:
$str = "I love it.";
$n = 123;
$u = -123;
+: 强制数字要加符号,只对数字形式输出有效
printf("PHP %+d", $n); //PHP +123
' : 更改默认填充字符, 默认的填充字符是空格。
printf("This is %'-15s", $str); //This is ------PHP World (用- 来代替空格,填充$str使得,$str的长度为15)
- : 像字符串左对齐,即把填充的字符放于右侧
printf("This is %'#-15s", $str); // This is PHP World######
数字:指定输出变量的宽度,如果变量太长,则截取前半部分,如果变量太短,则填充指定字符(默认的填充字符为空格)
printf("Number is %'#5d", $n); //Number is ##123
. :点号后面加上数字,表示带几位小数点,默认是6位,这个参数只对数字形式输出有效。
printf("Float Number is %.5f", $n); //Float Number is 123.00000
类型标识符: %bcdeufFosxX
类弄标识符,除了%,其他的用于指出把参数要当作什么形式,然后输出。
b: printf("Number is %b", $n); //Number is 1111011 把$n当作数字,然后以二进制的形式输出
c: printf(" Number is %c", $n); // Number is { (把$n当作数字,然后以这个数字对应的ASC码表的字符输出)
d:(把$n当作数字,然后以十进制的形式输出$n)
u: (与上面相同,只不过以无符号的形式输出)
f:(以浮点方式输出,本地化识别)
F:
s: (以字符串的形式输出)