
Untitled
By: a guest on
May 2nd, 2012 | syntax:
None | size: 1.13 KB | hits: 10 | expires: Never
Get the number of matched characters in a regex group
preg_replace('/(?:n|^)(={3,6})([^=]+)(1)/','<h#>$2</h#>', $input);
===Heading 3=== into <h3>Heading 3</h3>
====Heading 4==== into <h4>Heading 4</h4>
...
preg_replace('/(?:n|^)(={3,6})([^=]+)(1)/e',
"'<h'.strlen('$1').'>'.'$2'.'</h'.strlen('$1').'>'", $input);
preg_replace_callback('/(?:n|^)(={3,6})([^=]+)(1)/', 'cb_headline', $input);
function cb_headline($m) {
list(, $markup, $text) = $m;
$n = strlen($markup);
return "<h$n>$text</h$n>";
}
$str = '===Heading 3===';
echo preg_replace('/(?:n|^)(={3,6})([^=]+)(1)/e',
'implode("", array("<h", strlen("$1"), ">$2</h", strlen("$1"), ">"));',
$str);
echo preg_replace('/(?:n|^)(={3,6})([^=]+)(1)/e',
'"<h".strlen("$1").">$2</h".strlen("$1").">"',
$str);
<?php
$input = '===Heading 3===';
$h_tag = preg_replace_callback('#(?:n|^)(={3,6})([^=]+)(1)#', 'paragraph_replace', $input);
var_dump($h_tag);
function paragraph_replace($matches) {
$length = strlen($matches[1]);
return "<h{$length}>". $matches[2] . "</h{$length}>";
}
?>
string(18) "<h3>Heading 3</h3>"