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;
// 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;
0 comments:
Post a Comment