PHP str_replace 字符串函数

  • 定义和用法

    str_replace - 子字符串替换
  • 版本支持

    PHP4 PHP5 PHP7
    支持 支持 支持
  • 语法

    str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )  
    
    该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。如果没有一些特殊的替换需求(比如正则表达式),你应该使用该函数替换 ereg_replace()preg_replace()
  • 参数

    参数 必需的 描述
    search 查找的目标值,也就是 needle。一个数组可以指定多个目标。
    replace search 的替换值。一个数组可以被用来指定多重替换。
    subject 执行替换的数组或者字符串。也就是 haystack。如果 subject 是一个数组,替换操作将遍历整个 subject,返回值也将是一个数组。
    count 如果被指定,它的值将被设置为替换发生的次数。
    如果 search 和 replace 为数组,那么 str_replace() 将对 subject 做二者的映射替换。如果 replace 的值的个数少于 search 的个数,多余的替换将使用空字符串来进行。如果 search 是一个数组而 replace 是一个字符串,那么 search 中每个元素的替换将始终使用这个字符串。该转换不会改变大小写。如果 search 和 replace 都是数组,它们的值将会被依次处理。
  • 返回值

    该函数返回替换后的数组或者字符串。
  • 示例

    <?php
    // 替换顺序
    $str     = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
    $order   = array("\r\n", "\n", "\r");
    $replace = '<br />';
    
    // 首先替换 \r\n 字符,因此它们不会被两次转换
    $newstr = str_replace($order, $replace, $str);
    echo $newstr;
    echo '<br/>';
    // 输出 F ,因为 A 被 B 替换,B 又被 C 替换,以此类推...
    // 由于从左到右依次替换,最终 E 被 F 替换
    $search  = array('A', 'B', 'C', 'D', 'E');
    $replace = array('B', 'C', 'D', 'E', 'F');
    $subject = 'A';
    echo str_replace($search, $replace, $subject);
    echo '<br/>';
    // 输出: apearpearle pear
    // 由于上面提到的原因
    $letters = array('a', 'p');
    $fruit   = array('apple', 'pear');
    $text    = 'a p';
    $output  = str_replace($letters, $fruit, $text);
    echo $output;
    ?>
    
    尝试一下
  • 相关函数

    str_ireplace() - str_replace 的忽略大小写版本
    substr_replace() - 替换字符串的子串
    preg_replace() - 执行一个正则表达式的搜索和替换
    strtr() - 转换指定字符