Preg replace callback example

Regular expressions can be very powerful, this example shows how to use the preg_replace_callback function.

// Define a dummy text, for testing...
$Text  = "Title: Hello world!\n";
$Text .= "Author: Jonas\n";
$Text .= "This is a example message!\n\n";
$Text .= "Title: Entry 2\n";
$Text .= "Author: Sonja\n";
$Text .= "Hello world, what's up!\n";
// This function will replace specific matches
// into a new form
function RewriteText($Match){
    // Entire matched section: 
    // --> /.../
    $EntireSection  = $Match[0];
    // --> "\nTitle: Hello world!"
    // Key 
    // --> ([a-z0-9]+)
    $Key            = $Match[1];
    // --> "Title"
    // Value 
    // --> ([^\n\r]+)
    $Value        = $Match[2];
    // --> "Hello world!"
    // Add some bold (<b>) tags to around the key to
    return '<b>' . $Key . '</b>: ' . $Value;
// The regular expression will extract and pass all "key: value" pairs to
// the "RewriteText" function that is definied above
$NewText = preg_replace_callback('/[\r\n]([a-z0-9]+): ([^\n\r]+)/i', "RewriteText", $Text);
// Print the new modified text
print $NewText;
Snippet Details

Sorry folks, comments have been deactivated for now due to the large amount of spam.

Please try to post your questions or problems on a related programming board, a suitable mailing list, a programming chat-room,
or use a QA website like stackoverflow because I'm usually too busy to answer any mails related
to my code snippets. Therefore please just mail me if you found a serious bug... Thank you!

Older comments: