Gå til innhold

Jeg har et problem med str_replace |BBKODE -> html


Anbefalte innlegg

Heisann, jeg har et problem med str_replace på hjemmesiden min. Det er en portal som henter poster fra et phpBB forum. I postene den henter er det et bilde i BBKODE-form (dvs. )

 

Jeg har en str_replace som skal gjøre om denne til html, men det er noe rart med den.

 

Slik ser posten ut (BBKODE):

[img=http://www.ringerikeungdom.net/upload/images/news.gif]

 

Slik ser str_replace'en ut:

function bbkoder ($str) {

$bbkoder = array(
    '/\[b\](.*?)\[\/b\]/is',                               
    '/\[i\](.*?)\[\/i\]/is',                               
    '/\[u\](.*?)\[\/u\]/is',
    '/\[p\](.*?)\[\/p\]/is',
    '/\[img\](.*?)\[\/img\]/is',
    '/\[ur\](.*?)\[\/url\]/is',
    '/\[url=(.*?)\](.*?)\[\/url\]/is',
    '/\[img=(.*?)\]/is'
);

$erstatt = array(
    '<b>$1</b>',
    '<i>$1</i>',
    '<u>$1</u>',
    '<p>$1</p>',
    '<img src="$1" class="utskrift" />',
    '<a class="NewsMain" href="$1" rel="external">$1</a>',
    '<a class="NewsMain" href="$1" rel="extrenal">$2</a>',
    '<img src="$1" class="utskrift" />'
);

$str = preg_replace ($bbkoder, $erstatt, $str);

return $str;

}

 

Slik ser outputen ut:

[img:61f8b716a8]http://www.ringerikeungdom.net/upload/images/news.gif[/img:61f8b716a8]

 

Wtf? Hvor kommr den fra?

 

All hjelp mottas med :love:

Endret av TheClown
Lenke til kommentar
Videoannonse
Annonse

Har du prøvd å teste å kalle opp funksjonen med kun den strengen slik:

echo bbkoder("[img=http://www.ringerikeungdom.net/upload/images/news.gif]");

Det funker ihvertfall uten problemer her.

Det vises et bilde av en svart R i en firkant eller noe sånt.

Kan det evt være noe rart med koden som henter teksten fra forumet ?

Endret av kakkle
Lenke til kommentar

Hele scriptet ser slik ut, men jeg skjønner ikke at det kan ha noe med saken å gjøre;

 

 

<table width="100%" height="344" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" id="navigator">
 <tr>
   <td height="25" background="portal/style/images/cellpic0.gif"><span class="table1">Nyheter</span></td>
 </tr>
 <tr>
   <td>
<?php

// Henter info fra database
$connection = mysql_connect("HEMMELIG!);

mysql_select_db("RingerikeUngdom", $connection);

$sql= "SELECT t1.topic_poster, t1.topic_replies, t1.topic_title, t1.topic_time, t1.forum_id, t1.topic_id, t2.username, t3.post_text, t3.post_id, t3.post_subject FROM phpbb_topics t1, phpbb_users t2, phpbb_posts_text t3 WHERE t1.topic_poster = t2.user_id AND t1.forum_id = 1 AND t1.topic_title = t3.post_subject ORDER BY t1.topic_time DESC LIMIT 10";

// [topic_poster] = Brukeren som har skrevet tråden
// [username] = Brukeren som har skrevet tråden
// [topic_replies] = Antall svar i tråden
// [topic_title] = Titelen på tråden
// [post_subject] = Titelen på tråden
// [topic_time] = dato/tid tråden ble skrevet
// [forum_id] = Hvilke ID forumet tråden ligger i
// [topic_id] = Hvilke ID tråden har
// [post_text] = Selve teksten i 1. post i tråden
// [post_id] = Hvilke ID selve posten har

// Starter BBKode preg funksjon
function bbkoder ($str) {

$bbkoder = array(
    '/\[b\](.*?)\[\/b\]/is',                               
    '/\[i\](.*?)\[\/i\]/is',                               
    '/\[u\](.*?)\[\/u\]/is',
    '/\[p\](.*?)\[\/p\]/is',
    '/\[img\](.*?)\[\/img\]/is',
    '/\[ur\](.*?)\[\/url\]/is',
    '/\[url=(.*?)\](.*?)\[\/url\]/is',
    '/\[img=(.*?)\]/is'
);

$erstatt = array(
    '<b>$1</b>',
    '<i>$1</i>',
    '<u>$1</u>',
    '<p>$1</p>',
    '<img src="$1" class="utskrift" />',
    '<a class="NewsMain" href="$1" rel="external">$1</a>',
    '<a class="NewsMain" href="$1" rel="extrenal">$2</a>',
    '<img src="$1" class="utskrift" />'
);

$str = preg_replace ($bbkoder, $erstatt, $str);

return $str;

}

// Stater looping og echoing av innhold fra databasen
$result=mysql_query($sql);
while ($row=mysql_fetch_assoc($result))
{
 echo " 
 <table width='100%' border='1' cellpadding='0' cellspacing='0' bordercolor='#000000'>
 <tr>
 <td>";

 echo "<span class='NewsTitle2'>". $row[topic_title] . "</span>";

 echo "
 </td>
 </tr>
 </table>";

 //Slutt på Tittelbox

 echo " 
 <table width='100%' border='1' cellpadding='0' cellspacing='0' bordercolor='#000000'>
 <tr>
 <td>";

 echo bbkoder("<span class='NewsMain1'>" . $row[post_text] . "</span>");

 echo "
 </td>
 </tr>
 </table>";

 //Slutt på Mainbox

 echo " 
 <table width='100%' border='1' bgcolor='#41555f' cellpadding='0' cellspacing='0' bordercolor='#000000'>
 <tr>
 <td>";

 echo "<b><span class='NewsLink'>Forfatter:</span></b> <a class='NewsLink'href='http://ringerikeungdom.net/forum/profile.php?mode=viewprofile&u=" . $row[topic_poster] . "' target='_blank' >" . $row[username] . "</a>";

 echo "
 </td>
 <td>";

 echo "<span class='NewsLink'><b>Publisert:</b> $row[topic_time]</span>";

 echo "
 </td>
 <td>";

 echo "<span class='NewsLink'><b>Kommentarer:</b> $row[topic_replies]</span>";

 echo "
 </td>
 <td>";

 echo "<a class='NewsLink' href='http://ringerikeungdom.net/forum/viewtopic.php?t=" . $row[topic_id] . "' target='_blank' >Les mer</a>";

 echo "
 </td>
 </tr>
 </table> <br />";

 //Slutt på Infobox

}
mysql_free_result($result);

echo "<a class='NewsLink' href='http://ringerikeungdom.net/forum/viewforum.php?f=1'>« Eldre nyheter</a>";

?>
</td>
</tr>
</table>

 

Endret av TheClown
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å
×
×
  • Opprett ny...