PHP变量常用函数总结2

Original 2018-11-23 15:37:56 158
abstract:一.最常用的字符串查询函数    + 字符串查询,主要是根据特征进行,要么根据目标字符串位置,要么根据目标字符串的值    + 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).'...<br>'; //出现了乱码

echo mb_substr($str2,0,10).'...<br>';    //mb_substr 截取中文好用,一个汉字算一个

echo substr($str,11),'<br>';    //从索引为11的位置开始截取到最后并返回
//负数,则结尾开始取
echo substr($str,-3),'<br>';    //age        从到数第三个开始截取到最后
echo substr($str,-8,4),'<br>';    //lang    从倒数第八个开始 截取4个

    2.strstr($str1,$str2,$bool)查找字符首次出现的位置,并返回剩下部分,没找到返回false  参数1:目标字符串,参数2:要查找的值,参数3,为true 则返回要查找的字符串前面的字符串(不包括要查找的字符串)

$email = 'admin@php.cn';
//查询@是否存在 ,并返回@符后面的内容(包括@符号)
echo strstr($email,'@').'<br>';
//查询@是否存在并返回@符号前面的内容(不包括@符)
echo strstr($email,'@',true).'<br>';

    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.'<br>';
echo str_replace('大谋士','<span style="color:lightgreen">军事家</span>',$str).'<br>';
//2.删除指定字符,用空字符进行替换(空不是空格)    也就是第二个参数为''
echo str_replace('诸葛亮','',$str).'<br>';
//3.要被替换多个字符串,可以放在数组中
echo str_replace(['诸葛亮','政治'],['天','啊'],$str).'<br>';
//忽略大小写替换
$str2 = 'www.PHP.cn----WWW.php.net';
echo str_replace('php','<span style="color:lightgreen">HTML</span>',$str2).'<br>';
echo str_ireplace('php','<span style="color:lightgreen">HTML</span>',$str2).'<br>';
echo '<hr>';

    2.substr_replace():与str_replace()类似 只是指定了目标字符串的匹配区间  参数1:目标字符串 参数2 替换之后的字符串,参数3 起始位置,参数4:替换长度

//从0开始,知道结束,用新字符串替换:刘备与孙权孰强孰弱    也就是全部替换  不传最后一个参数
$str = '诸葛亮是一个政治家大谋士';
echo $str.'<br>';
echo substr_replace($str,'刘备与孙权孰强孰弱',0).'<br>';

//第四个参数就是要替换的长度
echo substr_replace($str,'刘备与孙权孰强孰弱',0,strlen($str)).'<br>';    //传入字符串总长度 就是全部替换

//指定位置插入字符串
echo substr_replace($str,'曹操',18,6 ).'<br>';    就是从18的位置向后6个进行替换
echo substr_replace($str,'曹操',18,0 ).'<br>';    //传入0就是插入字符串不删除原有字符串

//区间删除 ,将要替换的内容置空就可以了
echo substr_replace($str,'',0,9).'<br>';

三.其他常用的字符串函数

    + urlencode($url) 对url地址字符串进行编码
    + http_build_query($arr):生成url动态查询字符串
    + json_encode($var):将数据转为json格式
    + json_decode($str):将json格式的字符串解析还原为变量

    1. urlencode($url):就是在特殊字符前面加上一个%,防止服务器解析出现歧义  其反操作就是urldecode($url)

$url = '//m.sbmmt.com/';
echo $url . '<br>';
$url = urlencode('//m.sbmmt.com/');
echo $url;    //将特殊字符 :,/进行编码      http%3A%2F%2Fm.sbmmt.com%2F
echo '<hr>';

$url = urldecode($url);        //反操作 还原
echo '<a href="' . $url . '">php中文网</a>';
echo '<hr>';

    2.http_build_query()生成动态查询字符串    parse_url($url) 解析url地址 返回一个数组

echo http_build_query(['cate_id' => 3, 'art_id' => 10]);

$url = '//m.sbmmt.com/course.html?p=5';
$url2 = parse_url($url);    //解析当前url地址
echo '<pre>' . var_export($url2, true) . '<br>';
//array (
//    'scheme' => 'http',
//    'host' => 'm.sbmmt.com',
//    '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) . '<br>';    //"\u5b59\u5c1a\u9999"

//数组    [胸围,腰围,臀围]
$bwh = ['bust' => 88, 'waist' => 85, 'hips' => 90];    
echo json_encode($bwh) . '<br>';        //{"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) . '<br>';    //{"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).'<br>';        //object
echo '胸围是'.$res->bust;

//以数组方式返回    第三个参数穿true 则以数组方式返回
$res = json_decode($json,true);
echo gettype($res).'<br>';        //array
echo '臀围是'.$res['hips'];

貌似还学到了些奇怪的东西----滑稽脸

Correcting teacher:韦小宝Correction time:2018-11-23 15:40:57
Teacher's summary:作业是一直写的都很不错!赞!很多知识点都是很奇怪的!往后就知道了!继续加油吧!

Release Notes

Popular Entries