php中几个字符串替换函数详解

在php中字符替换函数有几个如有:str_replace、substr_replace、preg_replace、preg_split、str_split等函数,下面我来给大家总结介绍介绍.

一、str_replace(find,replace,string,count)

作用:str_replace() 函数使用一个字符串替换字符串中的另一些字符。

参数 描述

find 必需,规定要查找的值.

replace 必需,规定替换 find 中的值的值.

string 必需,规定被搜索的字符串.

count 可选,一个变量,对替换数进行计数.

在本例中,我们将演示带有数组和 count 变量的 str_replace() 函数,代码如下:

  1. <?php
  2. $arr = array("blue","red","green","yellow");
  3. print_r(str_replace("red","pink",$arr,$i));
  4. echo "Replacements: $i";
  5. ?>
  6. //输出:
  7. Array
  8. (
  9. [0] => blue
  10. [1] => pink
  11. [2] => green
  12. [3] => yellow
  13. )

Replacements:1

补充:count如果被指定,它的值将被设置为替换发生的次数.

二、substr_replace(string,replacement,start,length)

作用:substr_replace() 函数把字符串的一部分替换为另一个字符串.

参数 描述

string 必需,规定要检查的字符串.

replacement 必需,规定要插入的字符串.

start 必需,规定在字符串的何处开始替换.

正数 - 在第 start 个偏移量开始替换

负数 - 在从字符串结尾的第 start 个偏移量开始替换

0 - 在字符串中的第一个字符处开始替换

charlist 可选,规定要替换多少个字符.

正数 - 被替换的字符串长度

负数 - 从字符串末端开始的被替换字符数

0 - 插入而非替换

例子,代码如下:

  1. <?php
  2. echo substr_replace("Hello world","earth",6);
  3. ?>
  4. //输出:Hello earth

三、preg_replace(pattern,replacement,subject,limit = -1,$count)

作用:执行一个正则表达式的搜索和替换

参数 描述

pattern 必需,需要搜索的模式.

replacement 必需,用于替换的字符串或数组.

subject 必需,需要替换的字符串或数组.

limit 替换的次数,-1为无限

count 完成替换的次数,变量

Example #1 使用后向引用紧跟数值原文,代码如下:

  1. <?php
  2. $string = 'April 15, 2003';
  3. $pattern = '/(w+) (d+), (d+)/i';
  4. $replacement = '${1}1,$3';
  5. echo preg_replace($pattern, $replacement, $string);
  6. ?>
  7. //以上例程会输出:
  8. April1,2003

Example #2 preg_replace()中使用基于索引的数组,代码如下:

  1. <?php
  2. $string = 'The quick brown fox jumped over the lazy dog.';
  3. $patterns = array();
  4. $patterns[0] = '/quick/';
  5. $patterns[1] = '/brown/';
  6. $patterns[2] = '/fox/';
  7. $replacements = array();
  8. $replacements[2] = 'bear';
  9. $replacements[1] = 'black';
  10. $replacements[0] = 'slow';
  11. echo preg_replace($patterns, $replacements, $string);
  12. ?>
  13. //以上例程会输出:
  14. The bear black slow jumped over the lazy dog.

四、preg_split ( pattern , subject,limit = -1 ,flag )

作用:通过正则表达式分割字符串

参数 描述

pattern 必需,需要搜索的模式.

replacement 必需,用于替换的字符串或数组.

subject 必需,需要替换的字符串.

limit 被分割的字符串最多limit.

flag 模式

例 1672. preg_split() 例子,取得搜索字符串的成分,代码如下:

  1. <?php
  2. // split the phrase by any number of commas or space characters,
  3. // which include " ", r, t, n and f
  4. $keywords = preg_split ("/[s,]+/", "hypertext language, programming");
  5. ?>

例 1673,将字符串分割成字符,代码如下:

  1. <?php
  2. $str = 'string';
  3. $chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
  4. print_r($chars);
  5. ?>

例 1674,将字符串分割为匹配项及其偏移量,代码如下:

  1. <?php
  2. $str = 'hypertext language programming';
  3. $chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
  4. print_r($chars);
  5. ?>
  6. //本例将输出:
  7. Array
  8. (
  9. [0] => Array
  10. (
  11. [0] => hypertext
  12. [1] => 0
  13. )
  14. [1] => Array
  15. (
  16. [0] => language
  17. [1] => 10
  18. )
  19. [2] => Array
  20. (
  21. [0] => programming
  22. [1] => 19
  23. )
  24. )

五、str_split(subject,length)

作用:将字符串分割成数组

参数 描述

subject 字符串.

length 每一段的长度.

例子1,代码如下:

  1. <?php
  2. print_r(str_split("Hello"));
  3. ?>
  4. //输出:
  5. Array
  6. (
  7. [0] => H
  8. [1] => e
  9. [2] => l
  10. [3] => l
  11. [4] => o
  12. )

例子2,代码如下:

  1. <?php
  2. print_r(str_split("Hello",3));
  3. //开源代码phpfensi.com
  4. ?>
  5. 输出:
  6. Array
  7. (
  8. [0] => Hel
  9. [1] => lo
  10. )