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,",");
    将数组以 , 逗号为分隔符组成字符串

  • 相关阅读:
    基础薄弱的反思
    最短路SPFA
    乌龟棋
    石子归并
    Linux学习2
    java 基础 数组
    java 基础 异常
    java 基础 接口
    java 基础 instance of
    solidity“abi.encode/abi.encodePacked”使用golang编码
  • 原文地址:https://www.cnblogs.com/lhat/p/4779652.html
Copyright © 2011-2022 走看看