zoukankan      html  css  js  c++  java
  • 【php学习】字符串操作

    关于字符串的处理,基本上就是那几种操作:字符串长度、查找子字符串的位置、替换字符串、截取字符串、拆分合并字符串 ...

    字符串的定义:直接 $str = "abcd"; 或者 $str = 'xyzi';

    其中双引号和单引号的区别在于:双引号能够转义一些特殊字符,如 、 、$。因为能够转义$符,故能够将双引号中的变量转换。

    一般情况下推荐使用单引号,因为它的解析速度稍快。

    字符串长度

    strlen($str); //返回当前编码下字符串的长度,默认是ISO-8859-1编码

    如: $a = 'abc';

    echo strlen($a); //3

    $a = '中国';

    echo strlen($a); //如果文件保存编码是UTF-8的话,则输出6,因为在UTF-8编码下,一个中文占3个字节;同理在gb2312编码下,则输出4

    mb_strlen($str,charset); //返回指定编码下的字符串的长度

    $a = '中国';

    echo mb_strlen($a,'UTF-8'); //输出2

    echo mb_strlen($a,'gb2312'); //输出4 //如果文件保存编码是gb2312,那么长度就是2

    查找子字符串的位置

    strpos(str1,str2); //查找字符串str2在str1中首次出现的位置,相当于indexOf()

    如:

    $str1 = 'liuchuanwei';
    $str2 = 'an';
    echo strpos($str1,$str2); //输出6

    此外strpos还有一个参数offset,表示从offset位置开始查找

    strpos($str, $str2, strpos($str1, $str2)+1); 表示$str2在$str1中出现的第二次位置

    在php中经常存在这样的判断语句

    if(strpos($str1,$str2) !== false){
         echo '含有' . $str2 . '<br/>';
    }else{
         echo '不含有' . $str2 . '<br/>';
    }

    此处一定要用全不等于或者全等于,因为strpos()有可能返回位置0和出现错误而返回false,而0==false,但0!==false
    全等于和等于的区别:全等于是指类型和值都等于
    另外:如果想要查找在字符串中的最后出现的位置,使用 strrpos()函数是一个好主意,它的用法和strpos()完全相同而且他们都区分大小写,区别在于它返回的是字符串出现的最后一个位置。

    替换字符串
    str_replace($str1,$str2,$str0); //主前客后家末尾
    将字符串$str0中的子字符串$str1替换为$str2

    同时替换一批字符串
    $str = '男人,女人,男孩,女孩';
    //将字符串中的 '男' 转换成 '女' ,将 '女' 转换成 '男'
    用str_replace就不大好实现了


    strtr($str,$from,$to); //将字符串$str中的$from转换成$to
    strtr的牛逼之处在于,strtr还支持数组参数,即用数组参数替代$from和$to
    用 $from => $to 这样的格式数组替换$from和$to两个参数,从而实现整批整批的替换
    如:
    $arr = array('男'=>'女','女'=>'男');
    echo strtr($str,$arr);


    截取字符串
    substr($str,start[,length]); //从start处截取length长度的$str的子字符串

    拆分合并字符串
    $str = 'tech,linux,mysql';
    explode(',',$str);
    将字符串以 , 逗号为分隔符拆分,返回数组

    implode($arr,",");
    将数组以 , 逗号为分隔符组成字符串

  • 相关阅读:
    react ts axios 配置跨域
    npm run eject“Remove untracked files, stash or commit any changes, and try again.”错误
    java 进程的参数和list的线程安全
    帆软报表 大屏列表跑马灯效果JS
    帆软报表 快速复用数据集,避免重复劳动
    分析云 OA中部门分级思路和实现方法
    分析云 分段器 只显示一个块的数据
    分析云 更改服务默认的端口号
    分析云U8项目配置方法新版本(2)
    Oracle 创建时间维度表并更新是否工作日字段
  • 原文地址:https://www.cnblogs.com/lhat/p/4779652.html
Copyright © 2011-2022 走看看