コメント/投稿にコードを挿入するための単純な(BBCode)PHPコードを以下に示します。
function highlight_code($str) {
$search = array(
'/\[code=(.*?),(.*?)\](((?R)|.)*?)\[\/code\]/is',
'/\[quickcode=(.*?)\](((?R)|.)*?)\[\/quickcode\]/is'
);
$replace = array(
'<pre title="$2" class="brush: $1;">$3</pre>',
'<pre class="brush: $1; gutter: false;">$2</pre>'
);
$str = preg_replace($search, $replace, $str);
return $str;
}
私ができるようにしたいのは、これらの場所に関数を挿入することです。
$replace = array(
'<pre title="$2" class="brush: $1;">'.myFunction('$3').'</pre>',
^here
'<pre class="brush: $1; gutter: false;">'.myFunction('$2').'</pre>'
^here
);
SOで読んだことから、使用する必要があるかもしれませんしpreg_replace_callback()
、e-modifierを使用する必要があるかもしれませんが、これを行う方法がわかりません。正規表現に関する私の知識はあまり良くありません。助けていただければ幸いです!