什么是字符串
在C语言中字符串是作为字节数组处理的。在Java语言中字符串是作为对象处理的。而php则把字符串作为基本数据类型来处理。通常对字符串的处理涉及字符串的格式化。字符串的分割和连接、字符串的比较、以及字符串的查找、匹配和替换。
常用的字符串输出函数
常规输出字符串
echo()
:输出字符串
print()
:输出一个字符串1 2 3 4 5 6
| $array = [1,2,3]; $string = "123"; //echo $array; echo $string; //print($array); print($string);
|
echo()
和print()
都只能输出字符串,而不能输出数组输出字符串并退出程序
die()和exit()
:输出一个字符串后退出程序1 2 3 4
| $string = "123"; //die($string); exit($string); echo "我不会运行";
|
die()
和exit()
同样都只能输出字符串,而不能输出数组格式化输出字符串
字符串转换格式:
格式 |
作用 |
%% |
返回百分比符号 |
%b |
二进制数 |
%c |
依照ASCII值的字符 |
%d |
带符号十进制数 |
%e |
可续计数法(如1.5e3) |
%u |
无符号十进制数 |
%f或%F |
浮点数 |
%o |
八进制数 |
%s |
字符串 |
%x或%X |
十六进制数 |
printf()
:输出格式化字符串
sprintf()
:把格式化的字符串写入一个变量中
printf()
和sprintf()
都是格式化输出字符串,区别在于sprintf()
可以把格式化的字符串写入到一个变量中
1 2 3
| printf("我是%s","test"); //输出我是test $aa = sprintf("我是%s","test"); echo $aa; //输出我是test
|
常用的字符串格式化函数
去除空格和字符串填充函数
ltrim()
:删去字符串前面的空格
rtrim()
:删去字符串后面的空格
trim()
:删去字符串前后的空格 1 2 3 4 5 6
| $info = " 我前面有个空格"; $info1 = "我后面有个空格 "; $info2 = " 我前后有个空格 "; var_dump(ltrim($info)); //去除字符串前面的空格 var_dump(rtrim($info1)); //去除字符串后面的空格 var_dump(trim($info2)); //去除字符串前后的空格
|
str_pad()
:按需求对字符串进行填充
STR_PAD_LEFT
:字符串左填补
STR_PAD_RIGHT
:字符串右填补
STR_PAD_BOTH
:字符串左右两端填补1 2 3 4 5
| $input = "Alien"; var_dump(str_pad($input, 10));// 输出"Alien " var_dump(str_pad($input, 10, "-=", STR_PAD_LEFT));// 输出 "-=-=-Alien" var_dump(str_pad($input, 10, "_", STR_PAD_BOTH));// 输出 "__Alien___" var_dump(str_pad($input, 6 , "___"));// 输出"Alien_"
|
字符串大小写的转换
strtolower()
:将字符串全部转换为小写字符串
strtoupper()
:将字符串全部转换为大写字符串
ucfirst()
:将字符串第一个字符改大写
ucwords()
:将字符串每个字第一个字母改大写 1 2 3 4 5 6 7 8 9 10
| $info = "ABCDEFG HIJFLNM"; // 转换成小写 $info = strtolower($info); var_dump($info); // 转换成大写 var_dump(strtoupper($info)); // 把首字母变成大写 var_dump(ucfirst($info)); // 每个字第一个字母改大写。 var_dump(ucwords($info));
|
和HTML标签相关联的字符串格式化
nl2br()
:将字符串中\n
转成HTML换行符<br/>
1 2
| $html = "我要换行\n"; var_dump(nl2br($html));
|
htmlspecialchars()
:把指定特殊符号转换成实体,如<> 1 2 3
| $html = "<!DOCTYPE html><html><head><title>我是开始</title></head><body></body></html>"; $shilihuahtml = htmlspecialchars($html); var_dump($shilihuahtml);
|
htmlspecialchars_decode()
:实体转换为html
strip_tags()
:删除html
的标签函数 1 2 3
| $html = "<!DOCTYPE html><html><head><title>我是开始</title></head><body></body></html>"; var_dump(strip_tags($html)); //删除全部html代码,输出string(12) "我是开始" var_dump(strip_tags($html,"<title>")); //只保留title标签,标题会显示我是开始
|
其他字符串格式化函数
strrev()
:颠倒字符串,将字符串前后颠倒
strlen()
:取得字符串长度
number_format()
:格式货币、数字、时间等
md5()
:md5加密函数 1 2 3 4 5 6 7 8 9 10
| $a = "123456"; //颠倒字符串 var_dump(strrev($a)); // 获取字符串的长度 var_dump(strlen($a)); //格式货币、数字、时间等。 $number = 1234.5678; var_dump(number_format($number,2,'.','')); //md5加密 var_dump(md5($a));
|
字符串比较函数
字符串的比较
strcmp()
:字符串整个比较是否相同
strncmp()
:指定比较长度的字符串比较
strcasecmp()
:不区分大小写的字符串比较
strnatcmp()
:按自然排序法对字符串比较
similar_text()
:字符串的模糊比较,返回相似字符串的个数1 2 3 4 5
| var_dump(strcmp('ABCcc','ABccc')); //int(-1) var_dump(strncmp('ABCcc','ABccc',6)); //int(-1) var_dump(strcasecmp('ABCcc','ABccc')); //int(0) var_dump(strnatcmp('ABCcc','ABccc')); //int(-1) var_dump(similar_text('ABCcc','ABCcc'));//int(5)
|
字符串的分割与拼装
explode()
:使用一个字符串分割另一个字符串,返回一个数组 1 2 3 4 5
| $pizza = "piece1 piece2 piece3"; $pieces = explode(" ", $pizza); //用空格分隔pizza变量组成数组赋值给pieces echo $pieces[0]; // piece1 echo $pieces[1]; // piece2 echo $pieces[2]; // piece3
|
implode()
:用一组较小的字符串创建一个大字符串 1 2 3
| $array = array('lastname','email','phone'); $comma_separated = implode(",",$array); //使用,分割array的每个值组成一个字符串 echo $comma_separated; //输出lastname,email,phone
|
字符串的截取、查找、替换
截取
substr()
:取部分字符串,返回一个新的字符串
strstr()
:截取字符串某个参数第一次出现到结尾的字符串
strrchr()
:截取字符串某个参数最后一次出现到结尾的字符串
查找
strpos()
:寻找字符串某个参数最先出现的位置
strrpos()
:寻找字符串某个参数最后出现的位置
替换
示例
1 2 3 4 5 6 7 8 9 10 11 12 13
| $info = "ABCDEFG HIJFLNM"; //截取 var_dump(substr($info,4,7)); //从字符串第4位开始,截取7位 var_dump(strstr($info,'F')); //截取字符串第一个F开始到结尾的字符串 var_dump(strrchr($info,'F')); //截取字符串最后一个F开始到结尾的字符串
//查找 var_dump(strpos($info,'F')); //寻找字符串F最先出现的位置,返回下标,默认从0开始 var_dump(strrpos($info,'F')); //寻找字符串F最后一次出现的位置,返回下标,默认从0开始
//替换 var_dump($info); var_dump(str_replace(["A","B"], ["2","4"], $info)); //把字符串A和B分别替换为2和4
|