abstract:* 字符串的查找与替换,常用以下三个查询函数 *1、substr():根据位置查询,获取指定位置或区间的字符串 * 2、strstr():根据值查询,查询字符串首次出现的位置,返回剩余字符串 * 3.strpos():根据只查询,查询字符串首次出现的位置,返回出现的位置<?php //substr($str,$offset,$lenght),获取指定位置或区间内的字符串 $str
* 字符串的查找与替换,常用以下三个查询函数
*1、substr():根据位置查询,获取指定位置或区间的字符串
* 2、strstr():根据值查询,查询字符串首次出现的位置,返回剩余字符串
* 3.strpos():根据只查询,查询字符串首次出现的位置,返回出现的位置
<?php //substr($str,$offset,$lenght),获取指定位置或区间内的字符串 $str='php is the best language'; echo substr($str,11);//从索引11的位置返回所有的字符:best language echo '<br>'; echo substr($str,11,4);//best,取从索引后的4各字符 echo '<br>'; echo substr($str,-8);//将指针后尾的第8个,取后面的所有数据:language echo '<br>'; echo substr($str,-8,4);//将指针后尾的第8个,取后面的4个数据:lang echo '<hr>'; //-------------------strstr------------------------------- //查找首次出现的位置,返回剩余的内容 echo strstr($str,'best1');//best language //检查字符串是否存在,并返回前面内容,不包括指定字符 echo '<br>'; echo strstr($str,'best',true);//php is the echo '<br>'; echo strstr($str,'best',true),strstr($str,'best'); echo '<hr>'; //--------------------------strpos------------------------------------ //查找字符串首次出现的位置,返回位置 echo strpos($str,'best');//11
* 字符串的查找与替换
* str_replace:将字符串的中部分内容用目标函数进行替换
* substr_replace:是str_replace的加强版,但是指定了替换的区间
<?php //-----------------------str_replace()------------------------------- $str='php is the best language'; //将php换成了Java echo str_replace('php','java',$str);//java is the best language //将指定指定字符删除,代替的值应该为空''(但不是空格),将language删除; echo '<br>'; echo str_replace('language','',$str); //替换多个字符串,可以放在数组中,会一一对应 echo str_replace(['php','language'],['java','knowledge'],$str); //java is the best knowledge //--------------------------str_ireplace()------------------------------ //忽略大小写: echo str_replace('PHP','JAVA',$str);//没有被替换:php is the best language echo '<br>'; echo str_ireplace('PHP','JAVA',$str);//JAVA is the best language //-----------------------substr_replace()---------------------------- echo substr_replace($str,'php是很好的语言',0),'<br>';//从0开始完全替换:php是很好的语言 //第四个参数是要替换的长度 echo substr_replace($str,'很好的',11,4); //php is the 很好的 language
* urlencode():对url地址字符从进行编码,就是在特殊字符前面加%,防止服务器解析出现歧义
* http_build_query():生产url动态的查询字符串
*json_encode():将数据转为json格式
*json_decode:将json格式的字符串解析还原为变量
<?php //---------------------urlencode($url)/urldecode($url):--------------------------------- //urlencode():对url地址字符从进行编码 $url='http://www.php.cn/'; echo $url;//'http://www.php.cn/' echo '<br>'; $url=urlencode('http://www.php.cn/');//对url地址字符进行特殊编码 echo $url;//http%3A%2F%2Fwww.php.cn%2F echo '<hr>'; $url=urldecode($url);//对上面编码后的url再次进行转码 echo '<a href="'.$url.'">php中文网 </a>'; echo '<hr>'; //----------------------http_build_query()----------------------- //http_build_query():生产url动态的查询字符串 //?p=5:一个查询字符串时:用问号?进行标识 //side=5&id=2:多个查询字符串时:用&进行标识 $arr=['side'=>5,'id'=>2]; echo http_build_query($arr);//将数组转为了查询字符串:side=5&id=2 echo '<hr>'; //-----parse_url():将动态的查询字符串解析为数组---------------- $url1='http://www.php.cn/course/p=5'; $arr1=parse_url($url1);//解析为数组 echo var_export($arr1);//输出上面数组:array ( 'scheme' => 'http', 'host' => 'www.php.cn', 'path' => '/course/p=5', ) echo '<hr>'; //-----------------------json相关函数----------------------------------------- //两个约定:1.必须时utf-8编码;2.不能处理资源类型:resourse; //1.json_encode():将数据进行json编码,转为json格式 $lan='php';//变量 echo json_encode($lan);//对变量进行编码并输出:"php" echo '<br>'; //将数组转为json $arr=['side'=>5,'id'=>2]; echo json_encode($arr);//{"side":5,"id":2} echo '<hr>'; //将对象转为数组 $obj=new stdClass(); $obj->name='小龙女'; $obj->sex='女'; $obj->message=['hight'=>163,'weight'=>100,'age'=>23]; echo json_encode($obj);//{"name":"\u5c0f\u9f99\u5973","sex":"\u5973","message":{"hight":163,"weight":100,"age":23}} //----------------json_decode()------------------------------ //默认返回的都是对象格式 echo '<hr>'; $json='{"side":5,"id":2}'; $res=json_decode($json); echo gettype($res);//object echo '<br>'; echo $res->id;//2 echo '<hr>'; //以数组的形式返回 $res1=json_decode($json,true); echo gettype($res1);//array echo '<br>'; print_r($res1);//Array ( [side] => 5 [id] => 2 )
* 字符串的过滤
* trim,ltrim,rtrim:删除,向左、向右删除过滤
* str_pad:向指定方向填充
<?php //trim(字符串,要过滤的字符串) $input=' 1 admin'; echo '过滤前',$input,'的原始长度',strlen($input),'<hr>'; $input=trim($input);//不指定时就会去掉空格 echo '过滤后',$input,'的原始长度',strlen($input),'<hr>'; //指定过滤(ltrim,rtrim),删除扩展名 $str='demo2.php'; $str=rtrim($str,'.php'); echo '过滤后',$str;//过滤后demo2 echo '<hr>'; $str1='www.www.php.cn.www.'; $str1=ltrim($str1,'www.');//只是过滤左边开头的 echo '过滤后',$str1;//过滤后php.cn.www. echo '<hr>'; //正则过滤 $str3='234demophp21234098'; $str3=trim($str3,'0..9');//过滤数字 echo '过滤后',$str3;//过滤后demophp echo '<hr>'; //字符串填充 :str_pad(),4个参数(需要填充的字符串,指定长度,指定字符,填充方向) $str4='www.php.cn'; $str5=str_pad($str4,20);//采用默认空格,只是填入字符串的长度 echo '填充后','的原始长度',strlen($str5);//填充后的原始长度20 echo '<hr>'; //采用指定字符'*'进行填充,pad_tpye为1时在右边,为0是在左边填充,2是向两边填充 $str6=str_pad($str4,20,'*',0); echo '填充后',$str6;//填充后**********www.php.cn echo '<hr>'; //应用:典型加密 // 密码一般用md5或shal:md5()是32字符串,shal()是40位字符串,相同的密码,加密后总是相同的 $pass ='123456'; echo sha1($pass),'<hr>'; //将密码进行扩展到40位,用php向两边填充 $pass1=str_pad($pass,40,'php',2); echo '经填充再加密后',sha1($pass1),'<hr>';
字符串的大小写转换
* strtolower;
* strtoupper
* ucfirst;将首字母转为大写
* ucwords;将字符串的每个单词的首字母转为大写
<?php //应用1,将文件名全部转为小写,实现跨平台 $files=['Mode.php','View.php','Controller.php']; foreach ($files as $file){ $res[]=strtolower($file); } $files=$res;//还是转存在原来的变量中 echo '转换后',var_export($files,true),'<hr>'; //var_export,以纯字符串的形式输出任何类型的数据,输入true后的格式可以用于拼接
Correcting teacher:查无此人Correction time:2019-03-18 09:13:38
Teacher's summary:写的不错。常用的函数都记住就行了,写代码可以提高速度。继续加油