|  | 
 
 
  preg_replacePerform a regular expression search and replace 
  Description
   mixed preg_replace
    ( mixed $pattern, mixed$replacement, mixed$subject[, int$limit= -1
   [, int&$count]] ) 
  Parameters
    
    
     
pattern
      
       The pattern to search for. It can be either a string or an array with
       strings.
       
       Several PCRE modifiers
       are also available.
      
replacement
      
       The string or an array with strings to replace. If this parameter is a
       string and the patternparameter is an array,
       all patterns will be replaced by that string. If bothpatternandreplacementparameters are arrays, eachpatternwill be
       replaced by thereplacementcounterpart. If
       there are fewer elements in thereplacementarray than in thepatternarray, any extrapatterns will be replaced by an empty string. 
       replacementmay contain references of the form
       \\n or
       $n, with the latter form
       being the preferred one. Every such reference will be replaced by the text
       captured by the n'th parenthesized pattern.
       n can be from 0 to 99, and
       \\0 or $0 refers to the text matched
       by the whole pattern. Opening parentheses are counted from left to right
       (starting from 1) to obtain the number of the capturing subpattern.
       To use backslash in replacement, it must be doubled
       ("\\\\" PHP string). 
       When working with a replacement pattern where a backreference is 
       immediately followed by another number (i.e.: placing a literal number
       immediately after a matched pattern), you cannot use the familiar 
       \\1 notation for your backreference.  
       \\11, for example, would confuse
       preg_replace since it does not know whether you
       want the \\1 backreference followed by a literal 
       1, or the \\11 backreference
       followed by nothing.  In this case the solution is to use 
       ${1}1.  This creates an isolated
       $1 backreference, leaving the 1
       as a literal.
       
       When using the deprecated e modifier, this function escapes
       some characters (namely ', ",
       \ and NULL) in the strings that replace the
       backreferences. This is done to ensure that no syntax errors arise
       from backreference usage with either single or double quotes (e.g.
       'strlen(\'$1\')+strlen("$2")'). Make sure you are
       aware of PHP's string
       syntax to know exactly how the interpreted string will look.
      
subject
      
       The string or an array with strings to search and replace.
       
       If subjectis an array, then the search and
       replace is performed on every entry ofsubject,
       and the return value is an array as well.
limit
      
       The maximum possible replacements for each pattern in each
       subjectstring. Defaults to
       -1 (no limit).
count
      
       If specified, this variable will be filled with the number of
       replacements done.
       
  Return Values
   preg_replace returns an array if the
   subjectparameter is an array, or a string
   otherwise. 
   If matches are found, the new subjectwill
   be returned, otherwisesubjectwill be
   returned unchanged orNULLif an error occurred. 
  Errors/Exceptions
   As of PHP 5.5.0 E_DEPRECATEDlevel error is emitted when
   passing in the "\e" modifier. As of PHP 7.0.0E_WARNINGis
   emitted in this case and "\e" modifier has no effect. 
  Examples
    
    Example #1 Using backreferences followed by numeric literals 
<?php$string = 'April 15, 2003';
 $pattern = '/(\w+) (\d+), (\d+)/i';
 $replacement = '${1}1,$3';
 echo preg_replace($pattern, $replacement, $string);
 ?>
 The above example will output: 
    
    Example #2 Using indexed arrays with preg_replace 
<?php$string = 'The quick brown fox jumps over the lazy dog.';
 $patterns = array();
 $patterns[0] = '/quick/';
 $patterns[1] = '/brown/';
 $patterns[2] = '/fox/';
 $replacements = array();
 $replacements[2] = 'bear';
 $replacements[1] = 'black';
 $replacements[0] = 'slow';
 echo preg_replace($patterns, $replacements, $string);
 ?>
 The above example will output:
The bear black slow jumps over the lazy dog.
 
     By ksorting patterns and replacements, we should get what we wanted.
    
<?phpksort($patterns);
 ksort($replacements);
 echo preg_replace($patterns, $replacements, $string);
 ?>
 The above example will output:
The slow black bear jumps over the lazy dog.
 
    
    Example #3 Replacing several values 
<?php$patterns = array ('/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/',
 '/^\s*{(\w+)}\s*=/');
 $replace = array ('\3/\4/\1\2', '$\1 =');
 echo preg_replace($patterns, $replace, '{startDate} = 1999-5-27');
 ?>
 The above example will output: 
    
    Example #4 Strip whitespace 
     This example strips excess whitespace from a string.
    
<?php$str = 'foo   o';
 $str = preg_replace('/\s\s+/', ' ', $str);
 // This will be 'foo o' now
 echo $str;
 ?>
 
    
    Example #5 Using the countparameter 
<?php$count = 0;
 
 echo preg_replace(array('/\d/', '/\s/'), '*', 'xp 4 to', -1 , $count);
 echo $count; //3
 ?>
 The above example will output: 
  NotesNote: 
    
    When using arrays with patternandreplacement, the keys are processed in the order
    they appear in the array. This is not necessarily the
    same as the numerical index order. If you use indexes to identify whichpatternshould be replaced by whichreplacement, you should perform a
    ksort on each array prior to calling
    preg_replace.
 
  See Also
    
    PCRE Patternspreg_quotepreg_filterpreg_matchpreg_replace_callbackpreg_splitpreg_last_error |