Forum > Övriga serverspråk > PHP
Tjabba. Försöker göra bb-kåder med regular expressions, men har fastnat då dem vägrar nästlas.
Här är min nuvarande kod:
function bb_code($input)
{
$patterns[0] = '/\*(. ?)\*/is';
$patterns[1] = '/\[url=(. ?)\](. ?)\[\/url\]/is';
$patterns[2] = '/\{(. ?)\}/is';
$patterns[3] = '/\[color=(. ?)\](. ?)\[\color\]/is';
$replacements[0] = '<strong>$1</strong>';
$replacements[1] = '<a href="$1" alt="">$2</a>';
$replacements[2] = '<em>$1</em>';
$replacements[3] = '<span style="color:$1">$2</span';
return preg_replace($patterns, $replacements, $input);
}
ex:
echo bb_code("[url=hej]*Hej* [color=red]Hej[/color] {läget}?[/url]");Returnerar inte Hej i röd text, utan [color=red]Hej[/color]
Hjälp uppskattas! (Ny inom regexp, väldigt ny tom.)
Kör en Preg_Replace per del du vill göra. Tror det sätt du skriver just nu gör att den börja från tecken 1 och gå vidare till den träffar en av uttrycken i arrayn, men om du har haft något på tecken 20 men "tecken" 1 har träffats av en annan redan så kommer den hoppa över det uttrycket. smashingmagazine släpte förra veckan en bra artikel du kanske kan använda dig av:
http://www.smashingmagazine.com/200...lar-expressions/
Lyckas inte lista ut hur jag skall loopa igenom alla regexp matchningar, fattar hur jag ska göra i teorin men lyckas inte måla upp en bra bild på hur jag skall gå till väga. Lite hjälp hade varit uppskattat som bara den!
Kör en RegEx replace per matchning istället för att ha det i en array, jag vet inte riktigt hur php kör med array biten men i ditt fall verkar det inte vara den bästa lösningen att köra det i en array av matchningar, plocka ut dom och se om det resultera till ett mer önskat resultat, Du försöker använda dig av "textile" och inte BB-Code (http://www.textism.com/tools/textile/index.php) jag vet att det finns en download för detta i PHP, dock hittar jag inte det när jag kände igen vad du var ute efter. du kanske har mer tur än jag.
Redigerad av voigtan
Anledning:
Och efter en snabb google sökning: http://textile.thresholdstate.com/
Tycker du kan köra på deras, är testad och väl använd vad jag har förstått. Det är ju lite onödigt att skapa hjulet än gång till ;)
Oj, jo jag kan inte annat än att hålla med Voigtan, Textile ser riktigt nice ut! Nej, det ser VÄLDIGT nice ut. Tack som in i bara den!