php字符串处理函

180it 2020-03-04 PM 2098℃ 0条

字符串截取:

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 可选。一个变量,对替换数进行计数。

search,replace,strarr都是字符串时:不多讲
search,replace是字符串,strarr是数组:strarr中所有匹配search的值全替换为replace
search数组,replace字符串,strarr数组:把strarr中所有匹配search内任意值的值全替换为replace
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.?>

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

php字符串处理函