PHP/String/preg replace callback

Материал из Web эксперт
Перейти к: навигация, поиск

Generating replacement strings with a callback function

   <source lang="html4strict">

<?php $html = "The <b> tag makes text bold: <b>bold</b>"; print preg_replace_callback("@(.*?)@","decode", $html); function decode($matches) {

   return html_entity_decode($matches[1]);

} ?>

 </source>
   
  


Generating replacement strings with an anonymous function

   <source lang="html4strict">

<?php $callbackFunction = create_function("$matches","return html_entity_decode($matches[1]);"); $fp = fopen("html-to-decode.html","r"); while (! feof($fp)) {

   $line = fgets($fp);
   print preg_replace_callback("@(.*?)@",$callbackFunction, $line);

} fclose($fp); ?>

 </source>
   
  


Using preg_replace_callback() to Replace Patterns

   <source lang="html4strict">

preg_replace_callback() allows you to assign a callback function. preg_replace_callback() requires a regular expression,

                                a reference to a callback function, 
                                and the string to be analyzed. 

<? function convDate( $matches ) {

 $year = ($year < 70 )?$matches[3]+2000:$matches[3];
 $time = ( mktime( 0,0,0,$matches[1],$matches[2],$matches[3]) );
 return date("l d F Y", $time);

} $dates = "3/18/03
\n7/22/04"; $dates = preg_replace_callback( "/([0-9]+)\/([0-9]+)\/([0-9]+)/","convDate", $dates); print $dates; ?>

 </source>