Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > Övriga serverspråk > PHP

Nästla regexp

Hultin
Hultin

Gradering

#15775

 

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.)

 

 

... ORANGE HEARTS!
Taggar: php, regexp,
ID: #15775 | Skapades: 2009-05-19 13:34:21 | Tråden har 4 svar och har lästs 288 gånger.

voigtan
voigtan

Gradering

#15776

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/

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Taggar: preg_replace, regexp,
ID: #15776 | Skapades: 2009-05-19 14:43:47

Hultin
Hultin

Gradering

#15819

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!

... ORANGE HEARTS!
ID: #15819 | Skapades: 2009-05-21 14:50:08

voigtan
voigtan

Gradering

#15822

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 ;)

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Redigerades av voigtan den 21 maj 2009. Läs tidigare inlägg.
Redigerades av voigtan den 21 maj 2009. Läs tidigare inlägg.
ID: #15822 | Skapades: 2009-05-21 16:58:45

Hultin
Hultin

Gradering

#15824

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!

... ORANGE HEARTS!
ID: #15824 | Skapades: 2009-05-21 18:34:08
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy