preタグとcodeタグを除いて、非常にうまく機能する小さなbbcodeパーサーがあります。パーサー関数全体で pre タグと code タグを無視する必要があります。どうすればこれを達成できますか? アイデアがあれば教えてください。
私がやろうとしているのは、<pre>
または<code>
タグを使用すると、内部で使用されている bbcode が無視されますが、ページの他の場所では解析されます。正規表現と preg_match または preg_replace で何とか達成できると思います。
function parse($text) {
$search = array(
'/\*\*(.*?)\*\*/is', // bold
'/\/\/(.*?)\/\//is', // italic
'/__(.*?)__/is', // underline
); #search
$replace = array(
'<b>$1</b>',
'<i>$1</i>',
'<u>$1</u>',
); #replace
return preg_replace($search, $replace, $text);
} #parse
<pre>
** Bold Text **
// Italic Text //
__ Uderline Text __
</pre>
<code>
** Bold Text **
// Italic Text //
__ Uderline Text __
</code>
任意のヘルプが優先されます。ありがとうございました。