Correcting teacher:Guanhui
Correction status:qualified
Teacher's comments:写的挺不错!文章的排版有长进!
 
可以被解析\r\n
不能被解析从上图可以看出:双引号中的变量可以被解析
为了规范,建议在变量中加上大括号{}
$str = '我是变量字符串';
echo "ABCDEFG{$str}";
\r\n
不能被解析(需在源码中查看) heredoc
定义字符串可以看作是双引号字符串的Plus+,个人理解为多行的双引号字符串。(PHP4.0+)
1.标识符可以自定义 一般的 有EOT ,EOD EOF 等, 只有保持开始表示符和结束表示符一样即可(实际标识符默认是双引号,可以省略不写。);
2.结束表示符必须独占一行,且必须顶格写,不能有空格,最后以 ‘;’ 分号结尾;
3.所有引用的字符串中可以包含变量,无需字符串连接符。
nowdoc
定义字符串可以看作是单引号字符串的Plus+,个人理解为多行的单引号字符串。(PHP5.3+)
nowdoc
语法与heredoc
相同,唯一区别标识符需要加上单引号;注:字符串大小的上限: 2G
printf()
输出格式化的字符串;
$str1='中国人';
$str2='骄傲';
printf('我是一名%s,我很%s。',$str1,$str2);
//输出:我是一名中国人,我很骄傲。
// 比如sql语句:
$table='users'; //表名
$limit=10; //返回条目
printf('SELECT * FROM `%s` LIMIT %d', $table, $limit);
//输出:SELECT * FROM `users` LIMIT 10
No | % 符号 | 说明 |
---|---|---|
1 | %% | 返回一个百分号 % |
2 | %b | 二进制数 |
3 | %c | ASCII 值对应的字符 |
4 | %d | 包含正负号的十进制数(负数、0、正数) |
5 | %e | 使用小写的科学计数法(例如 1.2e+2) |
6 | %E | 使用大写的科学计数法(例如 1.2E+2) |
7 | %u | 不包含正负号的十进制数(大于等于 0) |
8 | %f | 浮点数(本地设置) |
9 | %F | 浮点数(非本地设置) |
10 | %g | 较短的 %e 和 %f |
11 | %G | 较短的 %E 和 %f |
12 | %o | 八进制数 |
13 | %s | 字符串 |
14 | %x | 十六进制数(小写字母) |
15 | %X | 十六进制数(大写字母) |
vprintf()
输出格式化的字符串(与printf()
功能相同,区别在于后面变量使用数组。);
$table='users'; //表名
$limit=10; //返回条目
vprintf('SELECT * FROM `%s` LIMIT %d', [$table, $limit]);
//输出:SELECT * FROM `users` LIMIT 10
sprintf()
返回格式化的字符串(与printf()
类似,不输出,返回格式化后的字符串)
$table='users'; //表名
$limit=10; //返回条目
$sql = sprintf('SELECT * FROM `%s` LIMIT %d', $table, $limit);
//输出:SELECT * FROM `users` LIMIT 10
vsprintf()
返回格式化的字符串(与与sprintf()
功能相同,区别在于后面变量使用数组。);
$table='users'; //表名
$limit=10; //返回条目
$sql = sprintf('SELECT * FROM `%s` LIMIT %d', [$table, $limit]);
//输出:SELECT * FROM `users` LIMIT 10
file_put_contents()
把一个字符串写入文件中。
// file_put_contents(文件,数据,如何打开/写入文件,规定文件句柄的环境)
echo file_put_contents("sites.txt","我"); //默认覆盖写入,返回字符长度
// 使用 FILE_APPEND 标记,可以在文件末尾追加内容
// LOCK_EX 标记可以防止多人同时写入
echo file_put_contents("sites.txt","要学习", FILE_APPEND | LOCK_EX);
implode()
join()
把数组元素组合为一个字符串
$arr=['学生1','学生2','学生3','学生4','学生5','学生6'];
//将数组合为字符串,每个用“|”号分开
echo implode('|', $arr);
echo '<br>';
echo join('|', $arr);
// 输出:
//学生1|学生2|学生3|学生4|学生5|学生6
//学生1|学生2|学生3|学生4|学生5|学生6
//两个函数输出结果相同
explode()
字符串打散为数组
// explode(在哪里分割字符串,要分割的字符串,返回的数组元素的数量)
print_r(explode('|','学生1|学生2|学生3|学生4|学生5|学生6'));
// 返回数组:Array ( [0] => 学生1 [1] => 学生2 [2] => 学生3 [3] => 学生4 [4] => 学生5 [5] => 学生6 )
substr()
返回字符串的一部分substr($string, $start, $length)
echo substr('ABCDEFG', 0), '<br>'; //输出全部
echo substr('ABCDEFG', 1), '<br>'; //输出BCDEFG
echo substr('ABCDEFG', 3), '<br>'; //输出DEFG
echo substr('ABCDEFG', 3,2), '<br>'; //输出DE(第3位开始取两位)
//注意:UTF8 中文1个字为3个字节
echo substr('我要学习', 3), '<br>'; //输出要学习
str_split()
把字符串分割到数组中
print_r(str_split('ABCDEF'));
// 输出:Array ( [0] => A [1] => B [2] => C [3] => D [4] => E [5] => F )
print_r(str_split('ABCDEF', 2));
// 输出:Array ( [0] => AB [1] => CD [2] => EF )
str_getcsv()
解析 CSV 格式字段的字符串,并返回包含所读取字段的数组。print_r(str_getcsv('2,小美,18,xiaomei@php.cn'));
file_get_contents()
整个文件读入一个字符串中。
id,name,age,email
1,小米,22,xiaomi@php.cn
2,小美,18,xiaomei@php.cn
3,小明,26,xiaomin@php.cn
$csvStr = file_get_contents('data.csv');
echo $csvStr;
// 输出:id,name,age,email 1,小米,22,xiaomi@php.cn 2,小美,18,xiaomei@php.cn 3,小明,26,xiaomin@php.cn
//字符串打散为数组
$csvArr = explode(",", $csvStr);
print_r($csvArr);
//输出结果如下:
str_pad()
把字符串填充为新的长度。
$str = "字符";
//字符不满10位在前面用“-”补齐
echo str_pad($str,10,"-",STR_PAD_LEFT),'<br>';
//输出:----字符
//字符不满10位在后面用“-”补齐
echo str_pad($str,10,"-",STR_PAD_RIGHT ),'<br>';
//输出:字符----
//字符不满10位在两边用“-”补齐
echo str_pad($str,10,"-",STR_PAD_BOTH ),'<br>';
//输出:---字符--
str_replace()
字符串替换
$css_pach='myapp/php_pro/css/style.css';
// 将以上CSS路径地址中的“/”替换“//”,并自动创建变量$i统计替换次数
echo str_replace('/', '//',$css_pach,$i);
echo '<br>查找并替换了:'.$i.'次';
// 输出:myapp//php_pro//css//style.css
// 查找并替换了:3次
// 字符串替换应用场景2
$str_key = ['交友', '广告', '直播', '带货'];
//find 查找的值支持数组
echo str_replace($str_key, '**', '广告代理, 直播教学, 免费带货,异性交友');
// 输出:**代理, **教学, 免费**,异性**
trim()
移除字符串两侧的空白字符或其他预定义字符。
$str = "...admin ";
echo $str;
// 原始输出:...admin
echo "<br>";
echo trim($str, ".");
// 移除后输出:admin
strpos()
查找字符串在另一字符串中第一次出现的位置。
$str1='hello php.cn';
$str2='php';
echo strpos($str1, $str2);
// 输出:6
strstr()
搜索字符串在另一字符串中是否存在
echo strstr('admin@php.cn','@');
// 输出:@php.cn
echo (strstr('admin@php.cn','@')) ? '存在' : '不存在' ;
// 输出:存在
echo (strstr('admin@php.cn','#')) ? '存在' : '不存在' ;
// 输出:不存在