摘要:一.最常用的字符串查询函数 + 字符串查询,主要是根据特征进行,要么根据目标字符串位置,要么根据目标字符串的值 + substr($str,$offset,$length): 根据位置查询,获取指定位置或区间内的字符串 + strstr($str1,$str2,
一.最常用的字符串查询函数
+ 字符串查询,主要是根据特征进行,要么根据目标字符串位置,要么根据目标字符串的值
+ substr($str,$offset,$length): 根据位置查询,获取指定位置或区间内的字符串
+ strstr($str1,$str2,$bool):查询字符串首次出现的位置,返回字符串
+ strpos($str1,$str2,$start):查询字符串首次出现的位置,返回所在位置
1.substr($str,$offset,$length); //参数1,指定字符串 参数2:起始位置 参数3截取长度 返回字符串$str = 'PHP is the best programming language';
$str2 = 'PHP是世界上.最好的变成语言么?';
echo substr($str2,0,10).'...
'; //出现了乱码
echo mb_substr($str2,0,10).'...
'; //mb_substr 截取中文好用,一个汉字算一个
echo substr($str,11),'
'; //从索引为11的位置开始截取到最后并返回
//负数,则结尾开始取
echo substr($str,-3),'
'; //age 从到数第三个开始截取到最后
echo substr($str,-8,4),'
'; //lang 从倒数第八个开始 截取4个
2.strstr($str1,$str2,$bool)查找字符首次出现的位置,并返回剩下部分,没找到返回false 参数1:目标字符串,参数2:要查找的值,参数3,为true 则返回要查找的字符串前面的字符串(不包括要查找的字符串)$email = 'admin@php.cn';
//查询@是否存在 ,并返回@符后面的内容(包括@符号)
echo strstr($email,'@').'
';
//查询@是否存在并返回@符号前面的内容(不包括@符)
echo strstr($email,'@',true).'
';
3.strpos($str,$str1,$start):查找字符串首次出现的位置,并返回位置 参数1:被查找的字符串 ,参数2:要查找的值 参数3:起始位置echo (strpos($str,'best')) ? 'best存在' : '没找到';//找到了输出存在 没找到输出没找到
二.字符串的查找与替换
+ str_replace($str1,$str2,$str3):将字符串中的部分内容,用目标字符串进行替换
+ substr_replace($str,$str2,$offset,$size): 功能和str_replace()类似,但指定了替换区间
1.str_replace():字符串替换 参数1:要查找的字符,参数2:替换后的字符,参数3:在哪个字符串中替换 还有一个忽略大小写的操作 str_ireplace()的$str = '诸葛亮是一个政治家大谋士';
//1.大谋士 换成 军事家
echo $str.'
';
echo str_replace('大谋士','军事家',$str).'
';
//2.删除指定字符,用空字符进行替换(空不是空格) 也就是第二个参数为''
echo str_replace('诸葛亮','',$str).'
';
//3.要被替换多个字符串,可以放在数组中
echo str_replace(['诸葛亮','政治'],['天','啊'],$str).'
';
//忽略大小写替换
$str2 = 'www.PHP.cn----WWW.php.net';
echo str_replace('php','HTML',$str2).'
';
echo str_ireplace('php','HTML',$str2).'
';
echo '
';
2.substr_replace():与str_replace()类似 只是指定了目标字符串的匹配区间 参数1:目标字符串 参数2 替换之后的字符串,参数3 起始位置,参数4:替换长度//从0开始,知道结束,用新字符串替换:刘备与孙权孰强孰弱 也就是全部替换 不传最后一个参数
$str = '诸葛亮是一个政治家大谋士';
echo $str.'
';
echo substr_replace($str,'刘备与孙权孰强孰弱',0).'
';
//第四个参数就是要替换的长度
echo substr_replace($str,'刘备与孙权孰强孰弱',0,strlen($str)).'
'; //传入字符串总长度 就是全部替换
//指定位置插入字符串
echo substr_replace($str,'曹操',18,6 ).'
'; 就是从18的位置向后6个进行替换
echo substr_replace($str,'曹操',18,0 ).'
'; //传入0就是插入字符串不删除原有字符串
//区间删除 ,将要替换的内容置空就可以了
echo substr_replace($str,'',0,9).'
';
三.其他常用的字符串函数
+ urlencode($url) 对url地址字符串进行编码
+ http_build_query($arr):生成url动态查询字符串
+ json_encode($var):将数据转为json格式
+ json_decode($str):将json格式的字符串解析还原为变量
1. urlencode($url):就是在特殊字符前面加上一个%,防止服务器解析出现歧义 其反操作就是urldecode($url)$url = 'http://www.php.cn/';
echo $url . '
';
$url = urlencode('http://www.php.cn/');
echo $url; //将特殊字符 :,/进行编码 http%3A%2F%2Fwww.php.cn%2F
echo '
';
$url = urldecode($url); //反操作 还原
echo 'php中文网';
echo '
';
2.http_build_query()生成动态查询字符串 parse_url($url) 解析url地址 返回一个数组echo http_build_query(['cate_id' => 3, 'art_id' => 10]);
$url = 'http://www.php.cn/course.html?p=5';
$url2 = parse_url($url); //解析当前url地址
echo '
' . var_export($url2, true) . '
';
//array (
// 'scheme' => 'http',
// 'host' => 'www.php.cn',
// 'path' => '/course.html',
// 'query' => 'p=5',
//)
3.json相关的函数
3.1二个约定: 1.必须是utf8编码,2.不能处理资源类型resource
3.2.1.json_encode():将数据进行json编码,就是转为json格式
3.2.2.json_decode():将json格式的字符串,解析还原成变量//变量
$girl = '孙尚香';
echo json_encode($girl) . '
'; //"\u5b59\u5c1a\u9999"
//数组 [胸围,腰围,臀围]
$bwh = ['bust' => 88, 'waist' => 85, 'hips' => 90];
echo json_encode($bwh) . '
'; //{"bust":88,"waist":85,"hips":90}
//对象
$obj = new stdClass();
$obj->name = '甄姬';
$obj->age = 30;
$obj->bwh = ['bust' => 80, 'waist' => 78, 'hips' => 80];
echo json_encode($obj) . '
'; //{"name":"\u7504\u59ec","age":30,"bwh":{"bust":80,"waist":78,"hips":80}}
//json_decode();默认返回的都是对象
$json = '{"bust":88,"waist":85,"hips":90}';
$res = json_decode($json);
echo gettype($res).'
'; //object
echo '胸围是'.$res->bust;
//以数组方式返回 第三个参数穿true 则以数组方式返回
$res = json_decode($json,true);
echo gettype($res).'
'; //array
echo '臀围是'.$res['hips'];貌似还学到了些奇怪的东西----滑稽脸
批改老师:韦小宝批改时间:2018-11-23 15:40:57
老师总结:作业是一直写的都很不错!赞!很多知识点都是很奇怪的!往后就知道了!继续加油吧!