PDA

Vollstndige Version anzeigen : vb code


koerschgen2001
21-07-2004, 17:36
wie wird vb code realisiert. gibt es da standarts fr wie man das macht?

ich hatte daran gedacht sowas mit str_replace() zu realisieren.
aslo [B] durch <b> zu ersetzten.
Hab davon keine ahnung. wollte auch erstmal nur b,I und U fr mein gstebuch ausprobieren.
Aber so wie ich das sehen funktionieren das nur wenn der tag auch geschlossen wird sonst nicht. welche funktion ist dafr zustndig.

bazubi
21-07-2004, 17:44
Das macht man am besten mit preg_replace()


$text = preg_replace('#(.*)#Uis', '<b>' . $1 . '</b>', $text);

feuervogel
21-07-2004, 17:54
am besten macht man das nicht per regex, weil die schweine lahm sind.

du ersetzt einfach per str_replace [ b ] mit <b> und [ b ] mit </b>. (natrlich ohne die leerzeichen)

c4
21-07-2004, 17:57
Fr das bisschen Text sind regulre Ausdrcke ausreichend langsam. Auerdem haben sie die Vorteile, dass so etwas klappt:
[b] Test [b] Test [b] Test [b] Test
Bei str_replace httest Du massig offene Tags und das W3C schimpft...

feuervogel
21-07-2004, 18:32
wenn der benutzer zu dumm ist das anzuwenden? wenn ich ein programm verkaufe, das dazu da ist, dateien zu lschen, und ein benutzer ausversehen alles vom pc lscht, ist mir das auch wurscht.

zweitens: nehmen wir mal an, wir haben ein cms. dieses cms zeigt nun, hnlich wie bei golem.de oder so einen berblick ber artikel an. da sind dann vielleicht 15 artikel, jeder enthlt, sagen wir 1500 worte pro artikel...jetzt wird halt immer nur ein kleiner teil ausgegeben aber trotzdem vorher der ganze text geparsed...wie lang das braucht, will ich gar nicht wissen.

xabbuh
22-07-2004, 05:05
Original geschrieben von feuervogel
wenn der benutzer zu dumm ist das anzuwenden?
Letztendlich drfte es dem Benutzer aber vielleicht egal sein, ob dein HTML valide ist oder nicht. Dir aber vielleicht nicht unbedingt... oder?

feuervogel
22-07-2004, 23:47
doch, in dem fall ist es mir egal, ist ja nicht "mein" html.

zweitens benutze ich eh nicht mehr diese art von parsing sondern hab ne m.e. nach elegantere methode entwickelt.

c4
23-07-2004, 08:54
zweitens benutze ich eh nicht mehr diese art von parsing sondern hab ne m.e. nach elegantere methode entwickelt. Lass sie uns wissen! Danke.

feuervogel
23-07-2004, 11:48
ja, sorry, war dann gestern etwas md.

also, folgendes:

///plaintextstart///
hallo
b welt
col #FF0000 !!!

i wie gehts?
> das ist ein zitat
///plaintextend///

wird zu:

///htmlstart///
hallo welt !!!
wie gehts? das ist ein zitat
///htmlend///

wer mal einen blick ins spiegel.de forum wirft, findet einen hnlichen parser, allerdings kann man dort nicht einfrben. urls werden auch bei mir automatisch zu hyperlinks. statt #FF0000 kann man auch einfach nur red schreiben.

c4
23-07-2004, 11:56
Erinnert irgendwie an LaTeX.

Interessante Methode, aber ich finde sie nicht praktikabel.

Gweilo
23-07-2004, 12:16
ja, denn zum beispiel, wenn jemand schreibt:
i don't want this text written in italics
wird er ein blaues wunder erleben :)

Man knnte ja die texte html encodet in der datenbank speichern, dann muss man den text nicht mehr decoden beim betrachten, nur noch beim editieren halt.

feuervogel
23-07-2004, 12:18
naja, nachteil ist halt, dass der vb-code stark an html errinnert und dadurch fr die meisten schneller erlernbar ist.
vorteile liegen auch deutlich auf der hand: es ist sehr schnell zu tippen damit, wenn man vb-code schnell einfgen will muss man einserseits mit der hand zur maus, andererseits muss js aktiviert sein. 2 dinge die ich nicht mag.
dass es praktikabel sein kann zeigt der einsatz im spiegel.de-forum.

c4
23-07-2004, 12:20
wenn man vb-code schnell einfgen will muss man einserseits mit der hand zur maus, andererseits muss js aktiviert sein Weder das eine, noch das andere stimmt.

Aber gut, soll doch jeder machen, wie will er.

feuervogel
23-07-2004, 13:21
du kannst nicht bestreiten, dass

b hallo

schneller zu tippen ist, als

[ b ]hallo[ / b ]

wenn es also ber die buttons gehen soll, muss js an sein. man kann die buttons natrlich auch ber die tab-taste erreichen, bzw. ber access-keys.

xabbuh
23-07-2004, 14:12
Und wenn ich bei dir einen ganzen Satz fett erscheinen lassen will, muss ich dann vor jedes Wort ein b setzen?

feuervogel
23-07-2004, 15:47
nein! das wre ja zu umstndlich!

der parser wendet den formatierungsbefehl auf alles an, was nach dem leerzeichen nach dem formatierungsbefehl bist zum nchsten zeilenumbruch kommt. einfache zeilenumbrche werden zu leerzeichen, je 2 zeilenumbrche hintereinander werden zu einem zeilenumbruch:

also

hallo
b welt hier ist der
parser.

bla
bla
bla

wird zu

hallo welt hier ist der parser
bla bla bla

xabbuh
23-07-2004, 16:35
Da ergibt sich fr mich dann aber eine Frage:

Oben weiter hast du geschrieben, dass dir regulre Ausdrcke in solchen Fllen nicht unbedingt lieb sind. Beim vb Code knnte ich natrlich mit str_replace arbeiten, auch wenn das "unschnes" HTML ergibt. Wie willst du das jetzt dann bitte bei deiner Variante machen?

feuervogel
23-07-2004, 17:16
natrlich muss ich da regulre ausdrcke anwenden, weil es einfach nicht anders zu lsen ist. es ging oben jedoch darum, dass die beste methode fr vb-code-parsing regex seien. dem habe ich widersprochen. regex ans sich sind ja nicht schlecht, nur m.e. mit adquaten alternativen unbedingt zu vermeiden.

xabbuh
23-07-2004, 17:38
Original geschrieben von feuervogel
nur m.e. mit adquaten alternativen unbedingt zu vermeiden.

In der Hinsicht, was adquate Alternativen sind, gehen unsere Meinungen allerdings auseinander.

feuervogel
23-07-2004, 18:29
ja, dir ist valides html berall wichtig, mir bei benutzereingaben eben nicht. aber trotzdem lsst sich nicht von "bester" lsung sprechen. jede lsung hat vor- und nachteile.

abgesehen davon entsteht bei der art wie ich in zukunft parsen (lassen) werde, auch nicht die mglichkeit invalides html zu bauen.

xabbuh
23-07-2004, 18:40
Original geschrieben von feuervogel
ja, dir ist valides html berall wichtig, mir bei benutzereingaben eben nicht.
Naja, lassen wir das. Da werden wir wohl nie auf einen gemeinsamen Nenner kommen ;-)

Original geschrieben von feuervogel
abgesehen davon entsteht bei der art wie ich in zukunft parsen (lassen) werde, auch nicht die mglichkeit invalides html zu bauen.
Da hast du Recht. Finde deine Art des parsens auch ganz interessant, aber aus rein subjektiver Sichtweise, sagt mir vb Code mehr zu. Vermutlich wegen der direkten Anlehnung an html.

feuervogel
23-07-2004, 19:25
Original geschrieben von xabbuh
Naja, lassen wir das. Da werden wir wohl nie auf einen gemeinsamen Nenner kommen ;-)


wr ja auch fad wenn alle gleich wren...;-)