PHP中字符串处理函数

PHP总结:字符串处理函数


1、字符串查找函数

$str1 = 'abcdefgabcdefg';
strpos($str1, 'bc', 2);    //从$str1中的第3个字符开始查找bc第一次在$str1中出现的位置(从0计数)  输出:8
stripos($str1, 'BC', 2);   //同strpos(),只是不区分大小写    输出:8
strrpos($str1, 'bc', 6);   //从$str1中的第7个字符开始查找bc最后一次在$str1中出现的位置  输出:8
strripos($str1, 'Bc', 6);  //同strrpos,不区分大小写  输出:8

strcspn(string,char,start,length);  //返回在找到任何指定的字符之前,在字符串查找的字符数(包括空格)

2、提取子字符函数

$str1 = 'abcdefgabcdefg';
substr($str1, 4, 10);      //从$str1中的第5个字符开始提取8个字符串,第三个参数为-n(n>0)时表示截取到倒数第n个字符    输出:efgabcde
strstr($str1, 'de');       //别名strchr,从$str1(第一个的位置)搜索'de'并从它开始截取到字符串结束,若没有则返回FALSE。   输出:defgabcdefg
stristr($str1, 'DE');      //同strstr,只是不区分大小写    输出:defgabcdefg
strrchr($str1, 'cd');      //从最后一次搜索到cd的位置开始截取到字符串结束,多用于截取路径中文件名  输出:cdefg

strpbrk("I love Shanghai!", "Sh");  //输出:Shanghai!

3、字符串替换

$str1 = 'abcdefgabcdefg';
str_replace('bc', '123', $str1);   //从$str1中查找bc用123来替换
str_ireplace('Bc', '123', $str1);  //同str_replace,只是不区分大小写
strtr($str1, 'bcdef', '123');      //转换字符串中特定的字符,如果后两个参数的长度不同,则会被格式化为最短的长度 输出:a123efga123efg
strtr($str1, array('bc'=>'12', 'de' => '34'));    //输出:a1234fga1234fg
substr_replace($str1, '1234567', 7, -2);    //substr_replace(string,replacement,start,length) 将字符串的一部分换成另一部分,第4个参数为0表示插入   输出:abcdefg1234567fg

4、字符串统计

$str1 = 'abcdefgabcdefg';
strlen($str1);     //输出:14
substr_count($str1, 'bc');  //函数计算子串在字符串中出现的次数 substr_count(string,substring,start,length)  输出:2

str_word_count('Today is Thursday', 0); //返回字符串中单词的个数    输出:3
str_word_count('Today is Thursday', 1); //返回3个单词组成的数组
str_word_count('Today is Thursday', 2); //返回3个单词组成的数组,键名为单词在字符串中出现的位置

count_chars(string,mode)    //返回字符串中所用字符的信息
count_chars($str1, 0);      //数组,ASCII 值为键名,出现的次数为键值
count_chars($str1, 1);      //数组,ASCII 值为键名,出现的次数为键值,只列出出现次数 >0 的值
count_chars($str1, 2);      //数组,ASCII 值为键名,出现的次数为键值,只列出出现次数 =0 的值
count_chars($str1, 3);      //字符串,带有所有使用过的不同的字符
count_chars($str1, 4);      //字符串,带有所有未使用过的不同的字符

5、比较字符串

$str1 = 'abcdefgabcdefg';
strcmp('abcd', 'abcd');    //大于、等于、小于依次输出1,0,-1,是二进制安全的
strcasecmp('ABCD', 'abcd');//同strcmp,不区分大小写
strncmp('abd', 'abc', 2);  //与strcmp类似,可以规定要比较的字符数 输出:0
strnatcmp('4', '14');      //按自然排序比较字符串
strnatcasecmp('abcdF', 'ABCDE');   //同strnatcmp,不区分大小写

substr_compare(string1,string2,startpos,length,case);   //从指定的开始位置比较两个字符串
substr_compare("Hello world","world",6);    //输出:0

6、分割字符串为数组

$str1 = 'abcdefgabcdefg';
str_split($str1, 3);            //把$str1按3个字符的长度进行分割并返回数组
split('cd', $str1, 3);          //Deprecated,把$str1按cd进行分割返回数组,分割3次,后面的将不分割
explode('cd', $str1, 3);        //用cd分割字符串$str1,第三个参数表示最多返回数组的元素个数,为负数时表示不返回最后的n个元素
implode(',', $array);           //用逗号分割数组,别名时join

wordwrap(string,width,break,cut);   //按照指定长度对字符串进行折行处理
wordwrap($str1, 3, "<br/>", true);  //每隔3个字符用<br/>拆分字符串

number_format(number,decimals,decimalpoint,separator);  //通过千位分组来格式化数字
number_format('123456789', 2);  //输出:123,456,789.00

7、去掉字符串两端的空格或预定义字符

$str1 = 'abcdefgabcdefg';
ltrim($str1, 'ag');   //去左端
trim($str1, 'ag');    //去两端
rtrim($str1, 'ag');   //去右端 chop时rtrim的别名

8、用预定义字符分割并重组字符

$str1 = 'abcdefgabcdefg';
chunk_split($str1, 2, '#'); //向$str1中按每个2个字符就加入一个#(预定义字符,默认为空格)方式重组;   输出:ab#cd#ef#ga#bc#de#fg#

9、字符串和ASCII值转换

chr(97); //函数从指定的ASCII值返回字符 输出:a
ord('Abc');  //返回字符串的首个字符的ASCII值   输出:65

10、HTML相关函数

$str1 = 'abcdefgabcdefg';
nl2br("One line.\nAnother line."); //在字符串中的每个新行(\n)之前插入 HTML 换行符(<br> 或 <br />)。
strip_tags('<h2>标题 <small>副标题</small></h2>', '<h2>'); //剥去字符串中的HTML、XML以及PHP的标签,第2个参数中的标签将会保留
htmlspecialchars('<h2>标题 <small>副标题</small></h2>');    //函数把预定义的字符转换为HTML实体(原样输出html代码)

11、字符串中字母的大小写转换

$str1 = 'abcdefgabcdefg';
strtolower('AbCd');    //转换成小写     输出:abcd
strtoupper('AbCd');    //转换成大写     输出:ABCD
lcfirst('Abcd');       //将字符串首字母转换为小写  输出:abcd
ucfirst('abce');       //将字符串首字母转换为大写  输出:Abce
ucwords('abce defla'); //将字符串每个单词首字母转换为大写  输出:Abce Defla

12、与数据库相关的字符串处理函数

$str1 = 'abcdefgabcdefg';
addslashes("Is your name O'reilly?");  //为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号、双引号、反斜线与NUL
stripslashes(addslashes("Is your name O'reilly?"));   //删除由 addslashes() 函数添加的反斜杠
//magic_quotes_gpc = On 自动对 get post cookie的内容进行转义
//get_magic_quotes_gpc() 检测是否打开magic_quotes_gpc

13、字符串处理

$str1 = 'abcdefgabcdefg';
strrev($str1);      //字符串翻转    输出:gfedcbagfedcba
str_shuffle($str1); //随机打乱字符串    输出:dgdgecbcfafabe
str_rot13($str1);  //对字符串执行ROT13转换,字母表中偏移13位 输出:nopqrstnopqrst
str_repeat($str1, 5);   //把$str1重复5次

str_pad(string,length,pad_string,pad_type)  //把字符串填充为新的长度
str_pad($str1, 20, '0', STR_PAD_BOTH);      //两侧平均填充
str_pad($str1, 20, '0', STR_PAD_LEFT);      //左侧填充
str_pad($str1, 20, '0', STR_PAD_RIGHT);     //右侧填充,默认

levenshtein(string1,string2,insert,replace,delete); //计算两个字符串之间的编辑距离

similar_text(string1,string2,percent);  //计算两个字符串的相似度
similar_text('abcde', 'abc', $percent); //输出:3,$percent = 75

str_getcsv(string,separator,enclosure,escape);  //解析 CSV 字符串为一个数组

parse_str(string,array);    //把查询字符串解析到变量中
parse_str("name=Bill&age=60", $myArray);    //将解析后的数组存储到$myArray中

hex2bin — 转换十六进制字符串为二进制字符串
bin2hex — 函数把ASCII字符的字符串转换为十六进制值
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值