什么是字符串
在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 | printf("我是%s","test"); //输出我是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():实体转换为htmlstrip_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
5var_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]; // piece3implode():用一组较小的字符串创建一个大字符串1
2
3$array = array('lastname','email','phone');
$comma_separated = implode(",",$array); //使用,分割array的每个值组成一个字符串
echo $comma_separated; //输出lastname,email,phone字符串的截取、查找、替换
截取
substr():取部分字符串,返回一个新的字符串strstr():截取字符串某个参数第一次出现到结尾的字符串strrchr():截取字符串某个参数最后一次出现到结尾的字符串
查找
strpos():寻找字符串某个参数最先出现的位置strrpos():寻找字符串某个参数最后出现的位置
替换
str_replace():替换字符串
示例
1 | $info = "ABCDEFG HIJFLNM"; |
