zoukankan      html  css  js  c++  java
  • php替换字符串函数strtr()和str_repalce()区别

    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);
    ?>

    数组里也可以使用变量,如:$table_change = array($old=>$new);

    结果为:

    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);

    返回值: 字符串

    函数种类: 资料处理

    内容说明

    本函数将字符串 str 代入 haystack 字符串中,将所有的 needle 置换成 str。

    下例将 %body% 以 black 取代

    <?php
    $bodytag = str_replace("%body%", "black", "<body text=%body%>");
    echo $bodytag;
    ?>

    格式:

    [@str_replace("要替换的旧内容", "要取代原内容的新字符", $被替换内容的变量名)]
    [@str_replace(array('旧1','旧2','旧3'), array('新1','新2','新3'), $被替换内容的变量名)]
    [@str_replace(array('旧1','旧2','旧3'), '新内容', $被替换内容的变量名)]
     

    实例:

    多对一替换:想把内容字段里所有的<p></p>标签清除掉,替换成空 [@str_replace(array('<p>','</p>'), '', $Content)]

    一对一替换:想把内容字段里所有的<br>标签换成<p> [@str_replace('<br>', '<p>', $Content)]

    多对多替换:想把内容字段里的<br>换成<br />, 同时<p>换<hr>,把</p>全清除 [@str_replace(array('<br>', '<p>','</p>'), array('<br />','<hr>',''), $Content)]

  • 相关阅读:
    Infopath Notify 弹出提示信息
    window.showModalDialog 返回值
    【转】获得正文内容中的所有img标签的图片路径
    Json Datable Convert
    Sharepoint 列表 附件 小功能
    Surgey 权限更改
    SQL 触发器用于IP记录转换
    Caml语句 查询分配给当前用户及当前组
    jquery 1.3.2 auto referenced when new web application in VSTS2010(DEV10)
    TFS diff/merge configuration
  • 原文地址:https://www.cnblogs.com/xtmp/p/7293988.html
Copyright © 2011-2022 走看看