abstract:一.字符串输出函数汇总 + echo :语言结构,输出一个或者多个字符串,字面量或者单值变量 + print:功能和echo相同,输出一个或多个标量,但会有一个返回值,成功返回1 + print_r($val,$bool):可以输出一个标量,数组,对象等任何类型
一.字符串输出函数汇总
+ echo :语言结构,输出一个或者多个字符串,字面量或者单值变量
+ print:功能和echo相同,输出一个或多个标量,但会有一个返回值,成功返回1
+ print_r($val,$bool):可以输出一个标量,数组,对象等任何类型,可视为print的升级版
+ var_dump($var1,$var2...)可以详细的输出一个或者多个任何类型的变量,可是为echo的升级版
+ var_export($var,$bool):以纯字符串形式输出任何类型的数据,可用于php语句,适合于结果拼装
+ printf("格式字符串",数据):输出格式化的字符串,变量使用占位符,主要用于标量数据
1.echo
echo 'hello world!!'; //字面量 $name = '林冲'; echo $name;//变量 echo '<h3 style="color:lightsalmon">m.sbmmt.com</h3>'; //支持同时输出多个变量或字面量 echo 'Hello',$name,'<hr>';
2.print 与echo类似 ,但是有个返回值
echo print '我是print的输出内容,返回值是:<hr>'; //1
3.print_r($val,$bool):可以输出一个任何类型的数据 第二个参数是布尔值,true结果不显示在浏览器,可以保存到一个变量中
$name = '林冲'; print_r($name); //输出复合数据,数组,对象 print_r([2,3,5,'zzz',71,'asdzxc',123123]);echo '<hr>'; print_r(new stdClass());echo '<hr>'; //第二参数为true 则可以保存到变量中 $tmp = print_r('2018世界杯,中国除了足球队没有来 ,其他都来了',true); echo $tmp,'<hr>';
4.var_dump():可以输出变量的详细信息
var_dump('m.sbmmt.com');//字面量 echo '<hr>'; $site = 'php中文网-m.sbmmt.com'; var_dump($site,'真棒!<hr>'); //可以输出复合类型:对象,数组 var_dump([1,2,3,4,5],new stdClass()); echo '<hr>';
5.var_export($var,$bool) 以字符串可以输出一个任何类型的数据
print_r($site); echo '<hr>'; var_export($site); //当做php语句来使用 $str = var_export($site); //和$str = 'php中文网-m.sbmmt.com';等价 echo var_export($site,true).'<hr>'; //数组 echo var_export(['张飞','关羽','刘备'],true).'<hr>';
6.printf() 格式化输出结果
printf("来%s起义%s一点都不容易!<br>",'水泊梁山',','); printf('我这个月跳槽了,涨了%s元工资,真开心',1500); echo '<hr>';
小结:只有echo 和var_dump可以输出多个变量信息 其他的只能输出一个 第二个参数支持布尔值的 只有print_r 和var_export
二.字符串的过滤与填充
+ trim($str),ltrim($str),rtrim($str),过滤掉字符串中的指定字符
+ str_pad($str1,$size,$str2,FLAG):向指定方向,填充指定字符串到指定长度
1.trim(字符串,要过滤掉的字符串) rtrim 右侧过滤 ltrim 左侧过滤
$input = ' admin '; echo '过滤前',$input,'原始长度:',strlen($input).'<br>'; //11 $input = trim($input); //赋值给原变量 echo '过滤后',$input,'原始长度:',strlen($input).'<br>'; //5 $str = 'demo2.php'; $str = rtrim($str,'.php'); //右侧删除扩展名 echo $str.'<hr>'; $str = 'm.sbmmt.com'; $str = ltrim($str,'www.'); //左侧删除www. echo $str.'<hr>'; //正则过滤 $str = '123梁山好汉54921'; $str = trim($str,'0..9'); echo $str.'<hr>';
2.字符串填充:str_pad($str,$size,$str,FLAG) 参数1:要填充的字符串,参数2:填充长度,参数3:用指定字符串填充,参数4填充方向(左,右,两侧一起)
$str = '魏蜀吴'; echo '<pre><span style="background:lightsalmon;">'.$str.'</span></pre><br>'; echo '当前长度'.strlen($str).'<br>'; //获取字符串长度 //用默认空格往右面填充 $str = str_pad($str,20); //只传前两个参数,即默认右侧传入空格到指定长度 echo '当前长度'.strlen($str).'<br>'; //20 echo '<pre><span style="background:lightsalmon;">'.$str.'</span></pre><br>'; /用指定字符 $str = '魏蜀吴'; //$str = str_pad($str,20,'*',STR_PAD_RIGHT); //右侧传入指定字符 //$str = str_pad($str,20,'*',STR_PAD_LEFT); //左侧传入指定字符 $str = str_pad($str,20,'*',STR_PAD_BOTH); //两侧同时传入字符 echo '当前长度'.strlen($str).'<br>'; echo '<pre><span style="background:lightsalmon;">'.$str.'</span></pre><br>'; //典型应用:数据加密 //密码一般都是md5()32字符串 ,sha1()40位字符串,相同的密码加密后总是相同的 $pass = '123456'; echo sha1($pass).'<br>'; $pass = str_pad($pass,40,'php',STR_PAD_BOTH); //用指定字符串填充原始密码后,再进行sha1()加密,更加安全 echo sha1($pass).'<br>';
trim,rtrim,ltrim 均可以过滤指定字符 只是方向不同,str_pad 可以用于进行更加严格的数据加密 在传入数据库前的数据中进行填充指定字符串来进行加密
三.字符串的大小写转换
+ strtolower($str):将字符串转为小写
+ strtoupper($str):将字符串转为大写
+ ucfirst($str1):将字符串的首字母转为大写
+ ucwords($str):将字符串的每个单词的首字母转为大写
1.字符串的大小写转换
echo strtolower('THIS IS COURSE'),'<br>'; echo strtoupper('this is course'),'<br>'; echo ucfirst('this is course').'<br>'; echo ucwords('this is course').'<br>'; //应用1:将文件全部转为小写,实现跨平台(Linux下区分大小写) $files = ['Model.php','View.php','Controller.php']; foreach ($files as $file){ //遍历数组 $res[] = strtolower($file); //将遍历的数组元素全部转为小写然后传入新空数组 } $files = $res; //赋值给原数组 echo var_export($files,true).'<br>'; //输出 //应用2:操作全部转为小写;方便操作 $opt = 'Edit';//edit/EDIT/Edit/EDit //$opt = 'Delete';//delete/DELETE/Delete/DElete $opt = strtolower($opt); switch($opt) { case 'select' : print '查询操作';break; case 'edit': print '编辑操作';break; case 'update': print '更新操作';break; case 'delete': print '删除操作';break; default: print '非法操作';break; }
strtolower(),strtoupper(),ucfirst(),ucwords() 几个的用法几乎相同,注意每个之间的作用不同
四.对HTML标签的过滤与转换
+ nl2br($str):在换行符\n前面插入html换行标签<br>
+ htmlspecialchars($str):将代码中的引号,&,标签标记<,>转为html实体字符,不解析
+ htmlspecialchars_decode($str):htmlspecailchars($str)反操作
+ htmlentities($str):将所有的html标记全转实体,包括了htmlspecailchars()中的标记
+ html_entity_decode():htmlentities()的反操作
+ strip_tags():过滤掉所有的html或php标记,可以有设置允许保留的标记,很实用
1.nl2br():在字符串中的\n字符之前插入一个<br>标签
$str = "2018年梁山好汉\n好像都没在"; echo nl2br($str).'<br>'; //换行了
2.htmlspecialchars() 和反操作 htmlspecialchars_decode()
$str = '<h3>他是\'一个 有"故事"的人</h3>'; //不转义输出 echo '不转义输出'.$str.'<br>'; //有h3样式和空格 //转义输出,单引号 双引号 &,<,> echo '转义输出'.htmlspecialchars($str).'<br>'; //将标签不解析原样输出了 转义输出<h3>他是'一个 有"故事"的人</h3> $str2 = '<h3>他是\'一个&nbsp;有"故事"的人</h3>'; echo '转义输出'.htmlspecialchars_decode($str).'<br>'; //反操作 有h3和空格样式
3.htmlentities() 反操作 : html_entity_decode() 所有html标签都会不解析
$str = "<p>魏国&蜀国正在\$交锋,'吴国'偷鸡!!!</p>"; echo '转义输出'.htmlentities($str).'<br>'; //转义输出<p>魏国&蜀国正在$交锋,'吴国'偷鸡!!!</p> $str = '转义输出<p>魏国&蜀国正在$交锋,\'吴国\'偷鸡!!!</p>'; echo '转义输出'.html_entity_decode($str).'<br>'; // 魏国&蜀国正在$交锋,'吴国'偷鸡!!! 解析html标签
4. strip_tags()过滤html和php标签
$str = '<p>蜀国是<span style="color:lightcoral">最强大</span>的国度么?</p>'; echo $str; //将所有的标签过滤掉 echo strip_tags($str).'<hr>'; //蜀国是最强大的国度么?
nl2br(),htmlspecialchars(),htmlspecialchars_decode(),htmlentities(),html_entity_decode(),strip_tags()用法都不难,就是名字长,需要背一下
Correcting teacher:韦小宝Correction time:2018-11-23 10:54:34
Teacher's summary:可以啊!很不错哦!写的很完整!也很棒!继续加油吧!!!