Gå til innhold

[LØST]BBcode-function som ikke vil virke


Anbefalte innlegg

Hei og hopp... jobber med en funksjon som skal replace quote-bbcode til blockquote-html... Funksjonen er i følge en tutorial:

 

function bbcode_quote($bccontent) {
   $open = '<blockquote>';
   $close = '</blockquote>';
 	
   // How often is the open tag?
   preg_match_all ('/\[quote\]/i', $bccontent, $matches);
   $opentags = count($matches['0']);
 	
   // How often is the close tag?
   preg_match_all ('/\[\/quote\]/i', $bccontent, $matches);
   $closetags = count($matches['0']);
 	
   // Check how many tags have been unclosed
   // And add the unclosing tag at the end of the message
   $unclosed = $opentags - $closetags;
   for ($i = 0; $i < $unclosed; $i++) {
   	$bccontent .= '</blockquote>';
   }
 	
   // Do replacement
   $bccontent = str_replace ('[' . 'quote]', $open, $bccontent);
   $bccontent = str_replace ('[/' . 'quote]', $close, $bccontent);
 	
   return $bccontent;
 	}

 

Det eneste jeg har endret er variabelen string, som nå heter bccontent ,med tanke på at dette er variabelnavnet som blir postet...

 

Men; Denne funksjonen vil ikke kjøre... Jeg har kjørt noen enkle str_replace før dette på enkelte tager, det funker så det griner!

 

Trengs det mer info for å kunne forklare hvorfor funksjonen ikke vil kjøre, skrik det ut! Jeg er ikke altfor rutinert i PHP-funksjoner... All hjelp tas i mot med åpne armer!

Endret av djus
Lenke til kommentar
Videoannonse
Annonse
Noen ganger er det fint å bruke funksjoner det de er ment for å gjøre... for eksempel preg_replace

5960956[/snapback]

 

Det er nok helt sikkert sant, men hjelper lite når noob-statusen min er såpass høy at jeg ikke får svaret ditt til å passe til spørsmålet mitt...

 

Det du sier er at preg_replace oppfører seg annerledes enn str_replace, antar jeg... det jeg da ønsker å finne ut er hvordan det påvirker funksjonen, så det er håp om å finne ut hvorfor den ikke kjører... hadde jeg visst forskjellen hadde jeg ikke spurt ;)

Lenke til kommentar

For å lage en sånn funksjon er det vel best med ob_start + preg_replace. Se på denne:

<?php
function bbcode($text) {
$text = preg_replace("#\[quote\](.*?)\[\/quote\]#im", "<blockquote>$1</blockquote>", $text);
return $text;
}
ob_start("bbcode");
?>

Legger du denne øverst i fila di vil "

Bla, bla, bla
" bli til "<blockquote>Bla, bla, bla".
Lenke til kommentar

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...