Yankes Skrevet 7. mai 2008 Del Skrevet 7. mai 2008 (endret) Heisann! Jeg har nå denne koden: $meld = str_replace("\n", "<br>", $melding); men jeg vil også legge til [b][/b], [i][/i], [u][/u]! men hvordan gjør jeg det? prøvde med $meld = str_replace("\n", "<br>", $melding); $meld = str_replace("[b]", "<b>", $melding); $meld = str_replace("[/b]", "</b>", $melding); osv ... men det funka dårlig .. Endret 7. mai 2008 av YaNkEs Lenke til kommentar
voldern Skrevet 7. mai 2008 Del Skrevet 7. mai 2008 Du kan gjøre det slik: <?php $tekst = "[b]Velkommen![/b]\nDette er en test."; echo str_replace(array("\n", '[b]', '[/b]'), array('<br />', '<b>', '</b>'), $tekst); ?> Lenke til kommentar
Canute Skrevet 7. mai 2008 Del Skrevet 7. mai 2008 Dette burde fungere. $meld = str_replace("\n", "<br>", $melding); $meld = str_replace("[b]", "<b>", $meld); $meld = str_replace("[/b]", "</b>", $meld); osv ... Lenke til kommentar
Wackamole Skrevet 7. mai 2008 Del Skrevet 7. mai 2008 (endret) $meld = str_replace("\n", "<br>", $melding); $meld = str_replace("[ b]", "<b>", $meld); $meld = str_replace("[/b]", "</b>", $meld); osv .. uthevet tekst... skal det ikke stå $melding der? Endret 7. mai 2008 av Famen Lenke til kommentar
Jonas Skrevet 7. mai 2008 Del Skrevet 7. mai 2008 (endret) Dette er jo hva det gjør i utgangspunktet, og som trådstarter mener ikke fungerer. Det fungerer jo naturligvis ikke, da $meld bare blir overskrevet hver eneste gang str_replace() kjøres. Strengt tatt er det ikke nødvendig med mer enn en variabel, dvs. du trenger bare $melding, ikke $meld. $melding = str_replace("\n", "<br>", $melding); $melding = str_replace("[b]", "<b>", $melding); $melding = str_replace("[/b]", "</b>", $melding); echo $melding; Endret 7. mai 2008 av Jonas Lenke til kommentar
Wackamole Skrevet 7. mai 2008 Del Skrevet 7. mai 2008 $Text = preg_replace("(ø)is","ø",$Text); $Text = preg_replace("(Ã¥)is","å",$Text); $Text = preg_replace("(ø)is","ø",$Text); $Text = preg_replace("(æ)is","æ",$Text); Jeg bruker preg_replace og denne koden funker feet... (ligger i en funksjon) function BBCode($Text) Lenke til kommentar
Danny92 Skrevet 7. mai 2008 Del Skrevet 7. mai 2008 (endret) Hei! Jeg har ikke drevet med str_replace før, og tenkte og begynne med det nå med forbindelse med forum osv jeg har lagd. Men koden printer ingen ting, ikke feilmelding heller. Koden: $tekst = "[b]TEST![/b][i]LOL!![/i]"; function BBCode($text) { $tekst = str_replace("[b]", "<b>", $tekst); $tekst = str_replace("[/b]", "</b>", $tekst); $tekst = str_replace("[i]", "<i>", $tekst); $tekst = str_replace("[/i]", "</i>", $tekst); } BBCode($tekst); Har også prøvd med echo forann BBCode. EDIT: Fant feilen! Greide og skrive text istede for tekst Endret 7. mai 2008 av dannyboy_1992_ Lenke til kommentar
Runar0 Skrevet 7. mai 2008 Del Skrevet 7. mai 2008 (endret) Eit lite tips er å ta ein titt på preg_replace funksjonen, denne vil gjøre det lettere å parse bb koder (spesielt når du kommer til ) og du vil kunne motvirke feil på side design som følge av at slutt taggen til f.eks. mangler. $tekst = str_replace("[b]", "<b>", $tekst); $tekst = str_replace("[/b]", "</b>", $tekst); // Dette kan erstattest med $tekst = preg_replace('#\[b\](.*?)\[\/b\]#is', '<b>\\1</b>', $tekst); Endret 7. mai 2008 av Runar0 Lenke til kommentar
Runar Skrevet 8. mai 2008 Del Skrevet 8. mai 2008 Det er verdt å merke seg hva PHP manualen skriver om dette: If you don't need fancy replacing rules (like regular expressions), you should always use this function (str_replace()) instead of ereg_replace() or preg_replace(). http://no2.php.net/str_replace Lenke til kommentar
Jonas Skrevet 8. mai 2008 Del Skrevet 8. mai 2008 Nå er jo dette et perfekt eksempel på hvor str_replace ikke helt strekker til da. Som Runar0 sier, dersom man kun bruker str_replace risikerer man at brukere ødelegger design og layout ved at tags ikke avsluttes. Lenke til kommentar
Runar0 Skrevet 8. mai 2008 Del Skrevet 8. mai 2008 (endret) Det er verdt å merke seg hva PHP manualen skriver om dette: If you don't need fancy replacing rules (like regular expressions), you should always use this function (str_replace()) instead of ereg_replace() or preg_replace(). http://no2.php.net/str_replace Er nok sant at \[b\](.*?)\[\/b\] ikkjer er fancy bruk av regex, men det er som eg sa _mye_ smartere enn i søke etter og [ /b] ved hjelp av str_replace. * Prøv å implenter (tittel)[/ url] med str_replace Endret 8. mai 2008 av Runar0 Lenke til kommentar
Runar Skrevet 8. mai 2008 Del Skrevet 8. mai 2008 Jeg tenkte mest på bruk av enkle bbkoder som , ikke de mer komplekse som du nevner nå Posten min var dessuten ment som et tillegg til posten din, ikke som en rettelse til det du sa, hvis du tolket det på den måten. Lenke til kommentar
Yankes Skrevet 8. mai 2008 Forfatter Del Skrevet 8. mai 2008 (endret) Takk for alle svar! Dette er bare en meldingsfunksjon, og der har jeg ikke tenkt til å ha med bilde eller link! skal kun ha b, i, u og linjeskifte! Jeg endte opp med å bruke denne: $melding = str_replace("\n", "<br>", $melding); $melding = str_replace("[b]", "<b>", $melding); $melding = str_replace("[/b]", "</b>", $melding); $melding = str_replace("[i]", "<i>", $melding); $melding = str_replace("[/i]", "</i>", $melding); $melding = str_replace("[u]", "<u>", $melding); $melding = str_replace("[/u]", "</u>", $melding); mener og huske at jeg prøvde akkurat det der før jeg la ut tråden på forumet, men, men .. jeg fikk det hvertfall til å funke nå! EDIT: Jeg testa det dere snakka om oppi her, om jeg ikke avslutter en tag så skjer det INGEN ting med designet mitt, det eneste som skjer er at hele meldinga blir bold fra der du setter [ b ] til der meldinga slutter, samme med i og u også! Endret 8. mai 2008 av YaNkEs Lenke til kommentar
Martin A. Skrevet 8. mai 2008 Del Skrevet 8. mai 2008 Og du ser ikke på det som en negativ ting? Det bruker ikke mye mer ressurser å benytte preg_replace i denne sammenhengen i forhold til str_replace. Lenke til kommentar
Jonhoo Skrevet 12. mai 2008 Del Skrevet 12. mai 2008 (endret) Synes det er rart at ingen har foreslått å legge det hele i en enkel array (bortsett fra voldern som alle overså ) $old = array('[b]', '[i]', '[u]', '[/b]', '[/i]', '[/u]'); $new = array('<b>', '<i>', '<u>', '</b>', '</i>', '</u>'); $melding = nl2br(str_replace($old, $new, $melding)); Skal allikevel si meg enig i at regular expressions er et bedre valg med hensyn på fleksibilitet her, men hvis det ikke er nødvendig, så er denne kanskje like så grei? Det skal dog sies at jeg heller ville brukt <strong> og <em> enn <b> og <i>... EDIT: Glemte "\n" => <br />... Det finnes alt en funksjon for dette i PHP kalt nl2br (se over) Endret 12. mai 2008 av Jonhoo 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å