Tamam, uygulama varsa. Ama sadece özelliği elde etmek ise, o zaman tekerleği yeniden icat yok. Ayrıştırma kolay bir iş değildir, ve olgun ayrıştırıcıların bol dışarı orada. Tabii ki, ben ilk PEAR paketleri bakmak istiyorum. Try HTML_BBCodeParser.
Eğer gerçekten kendiniz yapmak istiyorsanız, iki yol var:
- sıradanifade
- durum makinaları
Genellikle hem bir karışımı kullanışlı. Etiketleri iç içe ve kötü oluşturulabilir çünkü Ama, gerçekten kod zor bir şey. En azından, genel bir ayrıştırıcı kodu kullanabilirsiniz ve sıfırdan bu web sitesi kodlamak için kullandığınız tüm zaman alacak, size sözcüksel alanlar tanımlayabilirsiniz.
Btw: Bir BBparser kullanarak kullanıcı girişi sterilize sizi özgür değil ...
EDIT: Ben iyi bir ruh halinde bugün buradayım, işte HTML_BBCodeParser kullanmak için nasıl bir parçası olduğunu:
// 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));