練習するなら、わかりました。ただし、機能を取得するだけの場合は、車輪の再発明を行わないでください。構文解析は簡単な作業ではなく、成熟したパーサーがたくさんあります。もちろん、私は最初にPEARパッケージを見ていきます。HTML_BBCodeParserを試してください。
本当に自分でやりたいのなら、2つの方法があります:
通常、両方を組み合わせると便利です。しかし、タグは入れ子になっていて形が悪い可能性があるため、コーディングするのは本当に難しいことです。少なくとも、一般的なパーサーコードを使用して、語彙フィールドを定義します。最初から、Webサイトのコーディングに使用するすべての時間がかかります。
ところで:BBparserを使用しても、ユーザー入力をサニタイズする必要はありません...
編集:今日は気分がいいので、HTML_BBCodeParserの使用方法の抜粋を次に示します。
// if you don't know how to use pear, you'd better learn that quick
// set the path so pear is in it
ini_set("include_path", ini_get("include_path").":/usr/share/pear");
// include PEAR and the parser
require_once("PEAR.php");
require_once("HTML/BBCodeParser.php");
// you can tweak settings from a ini fil
$config = parse_ini_file("BBCodeParser.ini", true);
$options = &PEAR::getStaticProperty("HTML_BBCodeParser", "_options");
$options = $config["HTML_BBCodeParser"];
// here start the parsing
$parser = new HTML_BBCodeParser();
$parser->setText($the_mighty_BBCode);
$parser->parse();
$parsed = $parser->getParsed();
// don't forget to clean that
echo htmlspecialchars(striptags($parsed));