批改状态:合格
老师批语:以正在进行的作业为主吧,这些以后再补,别影响当下
单引号中的变量不能被解析,想要被解析要用字符串拼接的方式
$str='hello world!';echo '小明$str';echo '<br>';echo '小明'.$str; //字符串拼接

单引号的特殊字符不能被解析出来
echo 'hello,china \n\r haha';echo '<br>';

在单引号中又出现单引号 需要用\进行转义
字符串中的单引号有两重意义,定界符和单引号。echo 'hello,\'china\'';
如果想在字符串中输入\,则也输入两个\第一个是转义echo 'hello,\\china\\';
双引号中的变量可以被解析出来echo "小明$str 是个好学生"; //变量后面必须有空格
将变量和其后面字符连接起来,给变量加个大括号{},或者只给$后面的标识加上也可。
echo "小明 {$str}真是个好学生";echo '<br>';echo "小明 ${str}真是个好学生";

双引号能解析回车换行,回车换行在浏览器中被解析成单个空格echo "hello,china \n\r haha";
双引号中可以转义特殊字符
echo "hello,\"china\"";echo '<br>';echo "hello,\\china\\";

$str="北京";echo <<< Hihello,<span style="color:red">$str</span>Hi;

echo <<< 'NOW'hello,<span style="color:red">上海</span>NOW;


printf('%s的体重是%d公斤','小明','40');printf('%1$s的体重是%2$d公斤,但是%1$s偏重','小明','40');

vprintf('%s的体重是%d公斤',['小红','30']);echo '<br>';vprintf('%1$s的体重是%2$d公斤,但是%1$s偏重',['小红','30']);

echo sprintf('%s的体重是%d公斤','小刚','50');//用echo 来显示

echo vsprintf('%1$s的体重是%2$d公斤,但是%1$s偏重',['小强','60']);


也可以用join() 意义一样
$arr=['北京','上海','广州','深圳'];echo implode('-',$arr).'<br>';//第一个参数是分割符

explode(分隔符,字符串,数量)
$str='apple,orange,banner,pear';print_r (explode(',',$str));

print_r (explode(',',$str,2)); //

list($fruit1,$fruit2,$fruit3)=explode(',',$str);echo '<br>';echo $fruit1,$fruit2,$fruit3;

//list()用于在一次操作中给各个变量赋值。list($a,$b)=[100,200];echo $a,$b;//输出 100 200
echo substr('abcdefg',0).'<br>';echo substr('abcdefg',5).'<br>';echo substr('abcdefg',1,3).'<br>';echo substr('abcdefg',-1).'<br>'; //从结尾开始第一个,向右 输出 所以是gecho substr('abcdefg',-3).'<br>'; //从结尾开始第三个,向右 输出 所以是efgecho substr('abcdefg',-3,2).'<br>';

可指定数组元素的宽度.不写参数,默认是1
print_r(str_split('hello,world!',1));echo '<br>';print_r(str_split('hello,world!',2));echo '<br>';print_r(str_split('hello,中华人民共和国',3));//UFT-8一个中文占三个字节

与strlen不同的时,它可以通过设置字符编码从而返回对应的字符数,很好的处理了中文字符串的长度问题。
echo mb_strlen("菜鸟教程RUNOOB").'<br>'; //返回10 一个中文占一个字节// 使用strlenecho strlen("菜鸟教程RUNOOB").'<br>'; //返回18,一个中文占3个字节

substr()函数,它只针对英文字符,如果要分割的中文文字则需要使用mb_substr()echo mb_substr("菜鸟教程是个好教程",1,3);
并返回包含所读取字段的数组。
CSV 格式字段 : 北京,上海,天津,重庆。
一般用来读取文件,然后将文件内容放入数组。print_r(str_getcsv('北京,上海,天津,重庆'));
// file_get_contents() 函数把整个文件读入一个字符串中。$csvStr= file_get_contents('text.txt');//文件目录或名字不要用中文,用中文会出问题的echo $csvStr;

用法:str_pad(要填充的字符串,必选-新的字符串长度,可选-规定供填充使用的字符串,可选-规定填充字符串的哪边)
STR_PAD_BOTH - 填充字符串的两侧。如果不是偶数,则右侧获得额外的填充。
STR_PAD_LEFT - 填充字符串的左侧。
STR_PAD_RIGHT - 填充字符串的右侧。默认。echo str_pad('hello',30,"-*-",STR_PAD_LEFT);
用法:str_repeat(必需-规定要重复的字符串,必需-规定字符串将被重复的次数。必须大于等于 0)echo str_repeat("上海,",5);
用法:
echo str_replace('php','*','phpcn,phpchina,thinkphp',$count);echo '<br>替换了'.$count.'次<br>';

$search=['广告','交友','棋牌','直销'];echo str_replace($search,'***','最牛广告服务商,提供异性交友服务,棋牌游戏直销推广等');echo '<br>';echo str_replace($search,['++','@@','##','&&'],'最牛广告服务商,提供异性交友服务,棋牌游戏直销推广等');

$str='3123fdsalkj958731';echo trim($str);echo '<br>';echo trim($str,'31');echo '<br>';echo trim($str,'1..9'); //三个.也可以echo '<br>';echo trim($str,'1..4');echo '<hr>';

echo strpos('hello,i am lilei!','am');echo strpos('hello,i am lilei!','am',3);//从第3个位置查,第一次出现am 相对于整个字符串的位置echo strpos('hello,i am lilei!','l'); //输出 2echo strpos('hello,i am lilei!','l',5); //输出11

echo strstr('images/banner.jpg','.'); //返回一个后缀echo '<br>';echo strstr('images/banner.jpg','.',true);echo '<br>';echo ltrim(strstr('admin@php.cn','@'),'@');//输出邮箱的域名echo '<br>';echo rtrim(strstr('admin@php.cn','@',true),'@');//输出邮箱的用户名


$str=$_SERVER['QUERY_STRING'];parse_str($str,$a); //把查询字符串解析到变量中:print_r($a);

$arr=parse_url('http://php.edu/%E5%AD%97%E7%AC%A6%E4%B8%B2/URL%E5%A4%84%E7%90%86%E5%87%BD%E6%95%B0.php?id=5&name=haha');print_r($arr);echo '<br><br>';print_r($arr['query']);

$img=base64_encode(file_get_contents('girl.jpg')); //进行base64编码echo $img;//输出编码内容echo "<img src=\"data:image/jpeg;base64,{$img}\" width=\"200\">";//显示图片file_put_contents("newgirl.jpg",base64_decode($img));//进行解码后,重新生成一张新图片
echo md5('123456'); //32位echo '<br>';echo sha1('123456');//40位echo '<br>';echo md5(sha1('123456')); //32位echo '<hr>';$p='hello';echo sha1('123456'.$p);//加上特殊指定字符串混合加密,更安全

echo md5_file('test.php'); //显示一个文件的MD5file_put_contents('test.txt',md5_file('test.php')); //将test.php的md5值生成一个test.txt文件if (file_get_contents('test.txt')===md5_file('test.php')){echo "文件没被修改过"; //修改test.txt里面的值就会提示被修改过}else{echo "文件被修改过";}
字符串有很多,学习难度不大,常见的要掌握。其它的可以熟悉,了解一下功能。遇到时候查查手册,加强记忆。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号