批改状态:合格
老师批语:作业写的不是很好!需要多加点文字!
单引号
双引号
heredoc
nowdoc
示例:
// 1.单引号$name = '小刚';$age = 18;// 单引号中不解析变量echo '$name$age岁了';// 可用拼接方式echo $name . $age . '岁了';// 在字符串中换行,单引号中不解析特殊字符echo 'This is a beautiful \n\r world!';// 字符串中多个单引号嵌套要用转义符"\"echo '世界真\'美\'啊!';// 或者用双引号嵌套echo '世界真"美"啊!';// 反斜线后面跟单引号要原样输出反斜线需要将反斜线转义echo '世界真美啊!\\';echo '<hr>';// 2.双引号echo "世界真'美'啊!";// 解析变量,变量间加个空格echo "$name $age 岁了";// 要将变量和其它字符串紧贴,用定界符{}echo "{$name}{$age}岁了";// 可以解析特殊字符,但html中将\n换行解析为空格echo "This is a beautiful \n\r world!";echo '<hr>';// 3.heredoc,有双引号的特点,适合htmlphp混编// 双引号默认可以不写// echo <<< "TITLE"echo <<< TITLE{$name}在php学习网站:php.cn学习phpTITLE;// 4.nowdoc,有单引号的特点echo <<< 'TITLE'{$name}在php学习网站:php.cn学习phpTITLE;
print_r()格式化输出结果
printf(‘模板’, 替换掉模板中的占位符)
printf('小刚今年%s岁', 18);
printf('%s今年%d岁', '小刚', 18);
vprintf('%s今年%d岁', ['小刚', 18]);
echo sprintf('%s今年%d岁', '小刚', 18) . '<br>';
file_put_contents('1.text', sprintf('%s今年%d岁', '小刚', 18));
file_put_contents('2.text', vsprintf('%s明年%d岁', ['小刚', 19]));
示例1:
// 1.数组拼装字符串$arr = [1, 2, 3, 4, 5];// 用*拼装数组echo implode('*', $arr), '<br>';// 用?拼装数组与implode()功能一样echo join('?', $arr), '<br>';// 2.字符串转为数组$str = 'class, grade, number';// 分隔符号一致的字符串转化,指定获取的字符串长度后的数据会在最后一个分割符号中全部包含// print_r(explode(', ', $str, 2));// echo '<hr>';// 如果要正确解析字符串指定长度用list()// 结构索引数组元素到变量中,list()不是函数,7.0+才能解析关联数组// 自动创建变量$class,$gradelist($class, $grade) = explode(', ', $str, 3);echo "班级:{$class}, 年级:{$grade}", '<br>';// 3.字符串子串获取substr(字符串, 位置, 要获取的长度)// UTF-8中一个汉字为3个字节,所以取汉字要是3的整数倍,否则乱码echo substr('小刚今年18岁', 3, 9), '<br>';// 第二个参数为负数,是从倒数向后取,第三个参数也要符合汉字位数,8岁是4个字节echo substr('小刚今年18岁', -4, 4), '<br>';// 4.字符串转为数组并可指定数组元素:str_split(字符串, 获取的元素数量)$str1 = '小刚今年18岁';// 转为数组后中文有部分乱码,是因为18岁是5个字节不能被3整除print_r(str_split($str1, 3));// 这种情况需要扩展函数:mb_chr()等函数来解决,php版本7.0+echo '<hr>';// csv文件:纯文本存储表格数据,用分隔符分开// file_get_contents()获取文本文件内容$csv = file_get_contents('3.csv');echo $csv, '<br>';// 将读取的字符串转为数组print_r(explode(', ', $csv));
示例2:
// 1.str_pad(string,length,pad_string,pad_type):把字符串填充为新的长度echo str_pad('小刚', 12, '帅', STR_PAD_LEFT), '<br>';echo str_pad('小刚', 12, '帅', STR_PAD_RIGHT), '<br>';echo str_pad('小刚', 12, '帅', STR_PAD_BOTH), '<br>';// 2.str_repeat():重复输出字符串echo str_repeat('小刚', 5), '<br>';// 3.str_replace()字符串替换echo str_replace('\\', '/', '\public\index.php'), '<br>';// 用于替换的目录分隔符根据操作系统自动适应:DIRECTORY_SEPARATORecho str_replace('\\', DIRECTORY_SEPARATOR, '\public\index.php'), '<br>';// 查询字符串被替换的次数echo str_replace('\\', DIRECTORY_SEPARATOR, '\public\index.php', $count), '<br>';echo $count, '<br>';// 例如需要屏蔽某些非法词语$notAllow = ['政治', '广告', '直播', '非法'];// 含有非法词语的字符串都被替换成*echo str_replace($notAllow, '*', '政治难题, 非法交友, 直播陪聊, 广告推广'), '<br>';// 个性化替换echo str_replace($notAllow, ['*', '-', '+', '^'], '政治难题, 非法交友, 直播陪聊, 广告推广'), '<br>';// 3.trim():从两边删除指定字符,例如用户提交的账号密码// ltrim()只去除左边的,rtrim()只去除右边的$user = ' admin ';$pwd = ' pwd ';echo '用户名:' . $user . '密码:' . $pwd, '<br>';// 去除两边的空格echo '用户名:' . trim($user) . '密码:' . trim($pwd), '<br>';// 过滤两边的指定字符$userid = '18a';echo trim($userid, 'a'), '<br>';// 去除1到9之间数字echo trim($userid, '1..9'), '<br>';echo trim($userid, '1...9'), '<br>';// 4.strpos():字符串在另一字符串中首次出现的位置$str = '小刚今年18岁';echo strpos($str, '今'), '<br>';// 从指定位置开始查询echo strpos($str, '1', 9), '<br>';// 5.strstr():搜索字符串在另一字符串中是否存在,如果是,返回该字符串及剩余部分,否则返回 FALSE$name = '小刚拉斯托弗六笔司机6666666';$file = '\public\images\1.jpg';$email = 'admin@163.com';echo strstr($name, '六'), '<br>';echo strstr($file, '.'), '<br>';// 第三个参数为true的时候返回指定字符前的字符串(默认为false)echo strstr($email, '@', true), '<br>';
字符串特殊字符输出要转义
字符串紧贴用定界符{}
掌握输出的各种方式及特点
掌握字符串分割、替换、拼装
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号