字符串处理函数字符串处理函数字符串处理函数字符串处理函数字符串处理函数字符串处理函数字符串处理函数字符串处理函数字符串处理函数

归纳:

字符串截取:

substr (str string, int start [, int length] ):从字符串中获取其中的一部分

mb_substr():  被截取的字符串中包含中英文时使用.

mb_strcut():  被截取的字符串中包含中英文时使用,共4个参数,第四个是编码(utf-8)但中间两个参数是以字节计算的,以utf-8为例:字母一字节,汉字3字节,不满字节也不会出现乱码,只是不显示出来.

strstr ( string str, string needle ):查找字符串在另一个字符串中第一次出现的位置,并返回从该位置到字符串结尾的所有字符

subchr():同 strstr()

strrchr ( str string, string needle ):查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符

字符串替换:

str_replace(search,replace,strarr [,$count]) 通过已知字符串替换,常用替换 

substr_replace(string,replace,start,length)  通过已知偏移位置替换

preg_replace ( pattern , replacement , subject,limit = -1 ,$count )  正则替换

字符串分割(字符串转换成数组):

explode( string separator, string string [, int limit] )  通过已知字符串拆分

preg_split ( pattern , subject,limit = -1 ,flag )  正则拆分

str_split ( subject,length)  通过字符数拆分

数组合并成字符串:

string implode( string glue, array array )

字符串大小写转换:

strtolower(): 将传入的字符参数的字符全部转换成写并返回.  例如:echo strtolower("Hello WORLD!");

strtoupper(): 将传入的字符参数的字符全部转换成写并返回.用法同strtolowe()一 样.

ucfirst(): 将字符串的第一个字符改成写并返回.用法同strtolowe()一样.

ucwords(): 该函数将传入的字符串的每个单词的首字符变成写并返回.用法同strtolowe()一样

lcfirst():将字符串的第一个字符改成写并返回.用法同strtolowe()一样.

字符串截取:

substr():从字符串中获取其中的一部分

mb_substr():  被截取的字符串中包含中英文时使用.

mb_strcut():  被截取的字符串中包含中英文时使用,共4个参数,第四个是编码(utf-8)但中间两个参数是以字节计算的,以utf-8为例:字母一字节,汉字3字节,不满字节也不会出现乱码,只是不显示出来.

strstr():查找字符串在另一个字符串中第一次出现的位置,并返回从该位置到字符串结尾的所有字符

subchr():同 strstr()

strrchr():查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符

substr (str string, int start [, int length] )

函数用于从字符串中获取其中的一部分,返回一个字符串。

start 字符串开始位置,起始位置为 0 ,为负则从字符串结尾的指定位置开始

length 可选,字符串返回的长度,默认是直到字符串的结尾,为负则截取到倒数第n位

例子:

echo substr('abcdef', 1, 2); //输出 bc

echo substr('abcdef', -3, 2); //输出 de

echo substr('abcdef', 1, -1); //输出 bcde

?>

提示:

如果 start 是负数且 length 小于等于 start ,则 length 为 0。

strstr ( string str, string needle )

查找字符串在另一个字符串中第一次出现的位置并返回从该位置到字符串结尾的所有字符,如果没找到则返回 FALSE。

str 要处理的字符串

needle 要查找的字符串,如果是数字,则搜索匹配数字 ASCII 值的字符

例子:

$email = 'user@5idev.com';

echo strstr($email, '@'); // 输出 @5idev.com

?>

提示

该函数对大小写敏感。如需进行大小写不敏感的查找,请使用 stristr() 。


strchr()

同 strstr() 。

strrchr ( str string, string needle )

查找字符串在另一个字符串中最后一次出现的位置并返回从该位置到字符串结尾的所有字符,如果没找到则返回 FALSE。

该函数行为同 strstr() 函数,参数意义可参见上面 strstr() 函数参数说明。

例子:

$str="AAA|BBB|CCC";

echo strrchr($str, "|");

?>

输出: |CCC

结合 substr() 函数便可以实现 截取某个最后出现的字符后面的所有内容 这一功能:

$str="AAA|BBB|CCC";

echo substr(strrchr($str, "|"), 1);

?>

字符串替换:

str_replace() 通过已知字符串替换,常用替换 

substr_replace()  通过已知偏移位置替换

preg_replace()  正则替换




str_replace(search,replace,strarr [,$count])

search 必需。规定要查找的值。 

replace 必需。规定替换 find 中的值的值。 

strarr 必需。规定被搜索的字符串。 

count 可选。一个变量,对替换数进行计数。

  1. search,replace,strarr都是字符串时:不多讲
  2. search,replace是字符串,strarr是数组:strarr中所有匹配search的值全替换为replace
  3. search数组,replace字符串,strarr数组:把strarr中所有匹配search内任意值的值全替换为replace
  4. search,replace,strarr都是数组时:一对一替换,replace中的值不多于search中的值,不够以空代替




substr_replace(string,replace,start,length)

string 必需。规定要检查的字符串。

replace 必需。规定要插入的字符串。

start,length 和substr截取规则一样,如果截取为空,那么substr_replace相当于插入一个字符串.

例子:

echo substr_replace("Hello world","earth",6);

输出:Hello earth

preg_replace ( pattern , replacement , subject,limit = -1 ,$count )

作用:执行一个正则表达式的搜索和替换

pattern 必需。需要搜索的模式。

replacement 必需。用于替换的字符串或数组。

subject 必需。需要替换的字符串或数组。

limit 替换的次数。-1为无限

count 完成替换的次数,变量

例子1:

使用后向引用紧跟数值

$string = 'April 15, 2003';

$pattern = '/(w+) (d+), (d+)/i';

$replacement = '${1}1,$3';

echo preg_replace($pattern, $replacement, $string);

?>

输出:April1,2003  (测试未成功)

例子2:

preg_replace()中使用基于索引的数组

 代码如下 复制代码

$string = 'The quick brown fox jumped over the lazy dog.';

$patterns = array();

$patterns[0] = '/quick/';

$patterns[1] = '/brown/';

$patterns[2] = '/fox/';

$replacements = array();

$replacements[2] = 'bear';

$replacements[1] = 'black';

$replacements[0] = 'slow';

echo preg_replace($patterns, $replacements, $string);

?>

输出:The bear black slow jumped over the lazy dog.

字符串分割(字符串转换成数组):

explode()  通过已知字符串拆分

preg_split()  正则拆分

str_split()  通过字符数拆分

explode( string separator, string string [, int limit] )

本函数为 implode() 的反函数,使用一个字符串分割另一个字符串,返回一个数组。

separator 分割标志

string 需要分割的字符串

limit 可选,表示返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分,支持负数。

例子:

$str = '111|222|333|444|555|666';

  print_r(explode('|', $str));

  print_r(explode('|', $str, 2));

  print_r(explode('|', $str, -3));// 负数的 limit(自 PHP 5.1 起)

?>

输出结果如下:

Array(

  [0] => 111

  [1] => 222

  [2] => 333

  [3] => 444

  [4] => 555

  [5] => 666

)

Array(

  [0] => 111

  [1] => 222|333|444|555|666

)

Array(

  [0] => 111

  [1] => 222

  [2] => 333

)

preg_split ( pattern , subject,limit = -1 ,flag )

作用:通过正则表达式分割字符串

pattern 必需。需要搜索的模式。

replacement 必需。用于替换的字符串或数组。

subject 必需。需要替换的字符串。

limit 被分割的字符串最多limit。

flag 模式

PREG_SPLIT_NO_EMPTY  如果这个标记被设置, preg_split() 将进返回分隔后的非空部分。

PREG_SPLIT_DELIM_CAPTURE 如果这个标记设置了,用于分隔的模式中的括号表达式将被捕获并返回。

PREG_SPLIT_OFFSET_CAPTURE 显示每段字符串首字母在原字符串中所在位置

例子:将字符串分割为匹配项及其偏移量

$str = 'hypertext language programming';

$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);

print_r($chars);

?>

输出:

Array(

[0] => Array(

[0] => hypertext

[1] => 0

)

[1] => Array(

[0] => language

[1] => 10

)

[2] => Array(

[0] => programming

[1] => 19

)

)

str_split ( subject,length)

作用:将字符串分割成数组

subject 字符串。

length 每一段的长度。

例子:

print_r(str_split("1234567890",3));

?>

输出:

Array(

[0] => 123

[1] => 456

[2] => 789

[3] => 0

)

数组合并成字符串:

string implode( string glue, array array )

glue 连接数组元素的字符

array 需要组合为字符串的数组

例子:

$array = array('姓名', '电话', '电子邮箱');

$char = implode("^", $array);

echo $char;

?>

输出:

姓名^电话^电子邮箱

字符串大小写转换:

strtolower(): 将传入的字符参数的字符全部转换成写并返回.  例如:echo strtolower("Hello WORLD!");

strtoupper(): 将传入的字符参数的字符全部转换成写并返回.用法同strtolowe()一 样.

ucfirst(): 将字符串的第一个字符改成写并返回.用法同strtolowe()一样.

ucwords(): 该函数将传入的字符串的每个单词的首字符变成写并返回.用法同strtolowe()一样

lcfirst():将字符串的第一个字符改成写并返回.用法同strtolowe()一样.

?>

类型转换:

PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有:

•(int)、(integer):转换成整形 

•(float)、(double)、(real):转换成浮点型 

•(string):转换成字符串 

•(bool)、(boolean):转换成布尔类型 

•(array):转换成数组 

•(object):转换成对象 

PHP数据类型有三种转换方式:

•在要转换的变量之前加上用括号括起来的目标类型 

•使用3个具体类型的转换函数,intval()、floatval()、strval() 

•使用通用类型转换函数settype(mixed var,string type)

第一种转换方式: (int) (bool) (float) (string) (array) (object)

1.

2.$num1=3.14; 

3.$num2=(int)$num1; 

4.var_dump($num1); //输出float(3.14) 

5.var_dump($num2); //输出int(3) 

6.?> 

第二种转换方式: intval() floatval() strval()

1.

2.$str="123.9abc"; 

3.$int=intval($str); //转换后数值:123 

4.$float=floatval($str); //转换后数值:123.9 

5.$str=strval($float); //转换后字符串:"123.9" 

6.?> 

第三种转换方式: settype();

1.

2.$num4=12.8; 

3.$flg=settype($num4,"int"); 

4.var_dump($flg); //输出bool(true) 

5.var_dump($num4); //输出int(12) 

6.?> 

热门文章