Gå til innhold

kan kun ha en av hver bbkode i en tekst


Anbefalte innlegg

Skrevet (endret)

Jeg har kommet bortig et sånt irriterende problem som lyder slik:

Jeg har fått bbkodene til å funke. alt funker, men så fort man legger inn to [ b ][ /b ] så klikker en første [ /b ] og den siste [ b ] slik at alt mellom de to kodene bli uthevet.

 

Noen som har hatt dette problemet før og vet svaret på det?

 

koden:

 

 

function bbcode($string)
{
$string = str_replace("\n", '<br>', $string);
$string = str_replace('#rød', '#FF0000', $string);
$string = str_replace('#grønn', '#00FF00', $string);
$string = str_replace('#blå', '#0000FF', $string);
$string = str_replace('#gul', '#FFFF00', $string);
$string = str_replace('#indigo', '#00FFFF', $string);
$string = str_replace('#lilla', '#FF00FF', $string);
$search = array(
 '/\[b\](.*?)\[\/b\]/sU',
 '/\[i\](.*?)\[\/i\]/sU',
 '/\[u\](.*?)\[\/u\]/sU',
 //bilde
 '/\[img](.*?)\[\/img\]/sU',//uten noe
 '/\[img tittel\=(.*?) høyde\=(.*?)\](.*?)\[\/img\]/sU', //med titel og høyde
 '/\[img tittel\=(.*?)\](.*?)\[\/img\]/sU', //med titel
 '/\[img høyde\=(.*?)\](.*?)\[\/img\]/sU', //med høyde
 //link
 '/\[link url\=(.*?)\](.*?)\[\/link\]/sU',
 //plasering
 '/\[midten\](.*?)\[\/midten\]/sU',
 //farge og størrelse
 '/\[farge\=(.*?)\](.*?)\[\/farge\]/sU',
 //overskrifter
 '/\[h1\](.*?)\[\/h1\]/sU',
 '/\[h2\](.*?)\[\/h2\]/sU',
 '/\[h3\](.*?)\[\/h3\]/sU'
);

$replace = array(
 '<b>$1</b>',
 '<i>$1</i>',
 '<u>$1</u>',
 //bilde
 '<img src="$1" alt="bilde hentet fra $1" height="200">',
 '<img src="$3" alt="$1" height="$2">',
 '<img src="$2" alt="$1" height="200">',
 '<img src="$2" alt="bilde hentet fra $2" height="$1">',
 //link
 '<a href="$1">$2</a>',
 //plasering
 '<center>$1</center>',
 //farge og størrelse
 '<span style="color: $1;">$2</span>',
 //overskrifter
 '<h3>$1</h3>',
 '<h4>$1</h4>',
 '<h5>$1</h5>'
);

return preg_replace($search, $replace, $string);
} 
$tekst = $_POST['bbkode'];

 

 

 

Takker for alle positive svar

 

EDIT:

Ingen som kan dette?

Endret av AlecTBM
Videoannonse
Annonse
Skrevet (endret)

Det er mulig jeg er fryktelig korttenkt nå, har ikke progget PHP aktivt på halvannet år, men hvorfor kjører du ikke bare en str_replace på [.b.] og [./b.] også? Det ville jo løst problemet.

Endret av spitz
Skrevet

jeg fant ut av det og str_replace vil ikke funke siden da kan man hvis man vill la være å slutte den, og da blir resten av teksten uthevet.

 

Men fikkd et til nå så moderator steng tråden.

Måtte bare bytte ut U med i :D

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...