单引号中的变量不能被解析,想要被解析要用字符串拼接的方式
$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 <<< Hi
hello,<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>'; //从结尾开始第一个,向右 输出 所以是g
echo substr('abcdefg',-3).'<br>'; //从结尾开始第三个,向右 输出 所以是efg
echo 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 一个中文占一个字节
// 使用strlen
echo 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'); //输出 2
echo 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'); //显示一个文件的MD5
file_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 "文件被修改过";
}
字符串有很多,学习难度不大,常见的要掌握。其它的可以熟悉,了解一下功能。遇到时候查查手册,加强记忆。