摘要:* 字符串的查找与替换,常用以下三个查询函数 *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后的格式可以用于拼接
批改老师:查无此人批改时间:2019-03-18 09:13:38
老师总结:写的不错。常用的函数都记住就行了,写代码可以提高速度。继续加油