PHP/String/preg replace callback
Generating replacement strings with a callback function
<?php
$html = "The <b> tag makes text bold: <code><b>bold</b></code>";
print preg_replace_callback("@<code>(.*?)</code>@","decode", $html);
function decode($matches) {
return html_entity_decode($matches[1]);
}
?>
Generating replacement strings with an anonymous function
<?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("@<code>(.*?)</code>@",$callbackFunction, $line);
}
fclose($fp);
?>
Using preg_replace_callback() to Replace Patterns
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<br />\n7/22/04";
$dates = preg_replace_callback( "/([0-9]+)\/([0-9]+)\/([0-9]+)/","convDate", $dates);
print $dates;
?>