• 【php】strtr与str_replace的区别


    strtr(string,from,to):

       逐个字符开始替换,以from跟to中长度较较短的一个为准,例如:

      strtr("aidenliu","ai","b")   只替换原始字符串中出现的a 输出:bidenliu

      strtr("aidenliu","a","bc")  只替换原始字符串中出现的a 输出:bidenliu

      此函数是大小写敏感的,具如果发生多次替换,每一次替换的蓝本都是最原始的那个字符串,而不是在前一次替换的基础上替换,如

      strtr("aidenliu","aA","A@") 会输出Aidenliu 而不是@idenliu

     strtr(string,array):

      array 为关联数组,用关联数组中的值替换原始字符串中出现的对应的键,如果发生多次替换,每次替换的对像都是最原始的那个字符串,而不是在一次替换的基础上替换(此点与str_replace不同)

    strtr(string,from,to)与 strtr(string,array):

     strtr(string,from,to)是逐个字符替换,而strtr(string,array)是字符串替换

     strtr("aidenliu","ai","") 不发生替换(第二个参数为零长度字符串)

     strtr("aidenliu",array("ai"=>"")) 发生替换

    参考如下文章:

    php中替换函数主要有strtr(),str_repalce()这两个函数,但你们都知道他们这两个函数的区别和用法吗?

    先来看看这个php字符串替换函数 strtr()的两种用法:

    strtr(string,from,to)

    或者strtr(string,array)

    首先针对strtr函数第一种方式:

    我们看看下面的举例:

    <?php
    echo strtr("I Love you","Lo","lO");
    ?>

    得到的结果是:

    I lOve yOu

    这个结果提醒我们:

    • 1.strtr它是区分大小写的
    • 2.strtr的替换是很特殊的,你注意看后面那个yOu,中间的O被替换的,这显然不是我们的本意。

    再举一个特殊例子,说明这个php的sttr函数的怪异

    <?php
    echo strtr("I Love you","Love","");
    ?>

    结果是:

    I Love you

    什么也不会改变,所以strtr需要注意的是:

    3.不能被替换为空,也就是末位那个参数不能是空字符串,当然空格是可以的。

    再次举例strtr函数的另一种情况:

    <?php
    echo strtr("I Loves you","Love","lOvEA");
    ?>

    结果是:

    I lOvEs yOu

    注意看第三个参数的A,在结果中并没有出现。

    4.我不建议用strtr以少换多。

    ok,既然这个strtr函数挺麻烦为什么还要用呢?

    原因是,它的速度很快。据说,strtr 比 str_replace 快四倍。

    5.能用strtr函数的时候一定要用。

    那怎么用才舒服?

    这就是它的第二种情况:

    strtr(string,array)

    6.strtr符合意愿的使用方法

    <?php
    $table_change = array('you'=>'her sister');
    echo strtr("I Love you",$table_change);
    ?>

    结果为:

    I Love her sister

    7.小技巧:你想到替换什么你就往数组加什么

    比如:

    <?php
    $table_change = array('you'=>'her sister');
    $table_change += array('Love' => 'hate');
    echo strtr("I Love you",$table_change);
    ?>

    结果是:

    I hate her sister

    再次提醒那个Love 写成love 是行不通的哦。

    字符串取代。

    语法: string str_replace(string needle, string str, string haystack);

    返回值: 字符串

    原文链接:http://blog.csdn.net/aidenliu/article/details/5695433

  • 相关阅读:
    jQuery.validator.unobtrusive.adapters.addMinMax round trips, doesn't work in MVC3
    Debug a script that sits in a partial view
    OneTrust Cookies
    What's the technical reason for "lookbehind assertion MUST be fixed length" in regex?
    How to specify data attributes in razor, e.g., dataexternalid="23151" on @this.Html.CheckBoxFor(...)
    Google Colab Tips for Power Users
    跟李沐学Ai 04 数据操作 + 数据预处理【动手学深度学习v2】
    使用ActiveReports for .net 进行报表开发(十一)迁移到3.0
    在sqlserver中如何根据字段名查找字段所在的表
    FastCount停止服务,再提供两个免费网站浏览计数器
  • 原文地址:https://www.cnblogs.com/tl542475736/p/3635637.html
Copyright © 2020-2023  润新知