[关闭]
@javalaw2010 2015-08-22T10:41:27.000000Z 字数 1785 阅读 1788

PHP字符串处理

PHP 字符串



字符串类型的特点

1.可以把字符串当做一个数组来处理,将它看做一个字符集和,可以使用类似于数组下标的方式访问,但是字符串不是真正的数组,因此不能使用数组相关的函数,为了防止歧义,使用如下的访问方式:

  1. $str = 'lamp';
  2. echo $str{0}; //输出l

2.在C语言中可以将一个字符转化成整型从而得到它的字符编码,但是在PHP中不能这么做,而应当使用ord()chr()函数

  1. $string = 'a';
  2. echo ord($string)."\n"; //输出97
  3. echo chr(ord($string)+1); // 输出b

双引号中的变量解析

1.简单语法

如果遇到$符号,解析器会尽可能多地取得后面的字符以组成一个变量名

  1. echo "A OS is $lamp[os] "; //可以解析
  2. echo "A OS is $lamp['os'] "; //不能解析,对数组索引使用引号就必须使用花括号
  3. echo "A OS is {$lamp['os']} "; //可以解析
  4. echo "A OS is {$lamp[os]} "; //也可以解析,但是os会被当做一个常量,当PHP找不到这个常量时,就将其当做一个字符串,效率低

2.复杂语法

使用这种方法可在字符串中包含任何名字空间里的变量,使用{ }包含进来,此语法仅在{$时被识别(可以使用{/$得到一个字面上的" {$ ")。


常用字符串输出函数

1.echo()

由于echo()实际上并不是一个真正的函数而是一个语法结构因此它的效率最高;

2.print()

功能与 echo()相同,但是有返回值,成功返回1,失败返回0;

3.die()

die()exit()的别名,如果参数是一个字符串,则在退出前输入它;如果参数是一个整数,这个值被用作退出状态,这个值在0~254之间,255由PHP保留不被使用,状态0用于成功终止程序。

4.printf()

与C语言的同名函数相同,当百分号多于arg参数时,需要使用占位符,占位符由数字+\$组成

  1. $str = 'LAMP';
  2. $num = 789;
  3. $format = "The %2\$s book contains %1d pages.
  4. That's a nice %2\$s full of %1\$d pages "
  5. printf( $format , $num ,$str );

5.sprintf()

printf()用法基本相同,只不过sprintf()不输出字符串,而是以返回值的形式写入到一个变量中。


常用的字符串格式化函数

去除空格和字符串填补函数

1.ltrim(),rtrim(),trim()删除字符

l = left ,r = right.需要两个参数,第一个参数传入需要处理的字符串,第二个传入需要删除的字符,这个参数是可选的,如不选择,默认删除空格。

2.str_pad() 填补字符

需要四个参数。第一个为需要处理的字符串,必选,第二个为处理后的字符串长度,必选,如果小于原始长度,则不进行任何操作,第三个参数为填补使用的字符串,可选,不指定则默认为空格,第四个参数为填补的方向,有三个参数可选,STR_PAD_BOTH,STR_PAD_LEFT,STR_PAD_RIGHT.

大小写转换

strtoupper()将所有字母转换为大写
strtolower()将所有字符转换为小写
ucfirst()将给定字符串中的首字母变为大写
ucwords()将给定字符串中以空格分割的单词首字母转换为大写

与HTML相关的字符串格式化

1.nl2br()

  1. echo nl2br("One line .\nAnother line."); //会在/n前加上<br />

2.htmlspecialchar()

该函数将HTML标记中的特殊字符转换成HTML实体。需要三个参数,第一个参数为需要处理的字符串,必选.第二个参数为引号的转换方式,有三个可选的值,ENT_COMPAT只转换双引号保留单引号,ENT_QUOTES同时转换,ENT_NOQUOTES不转换,这个参数是可选的,默认为ENT_COMPAT.第三个参数为处理的字符集,可选,默认为ISO88511-1.

3.htmlentities()

将所有的非ASCII码字符转换为对应的实体代码,用法跟上个函数相同

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注