Gå til innhold

[LØST] | URL i BBCODE til URL i HTML


Anbefalte innlegg

Heisann og håsann. Jada jeg har søkt før jeg lagde denne tråden, men jeg fant ikke noe som hjelpe meg... :(

 

Vel, jeg har lagd en funksjon som henter frem innholdet i posterfra phpBB2-forum.

 

Disse postene er korte og inneholder bare en type BBCODE som jeg trenger hjelp til å gjøre om til html kode slik at den kan vises i potalen min.

 

I BBCODE ser den slik ut:

[url=www.her-kommer-urlshitten-opp.com]her kommer teksten opp[/url]

 

Hvordan kan jeg gjøre om dette slik at det ser ut som HTML kode slik:

<a href=www.her-kommer-urlshitten-opp.com>her kommer teksten opp</a>

 

 

Innholdet blir hentet ut gjennom en loop, så jeg er litt usikker på hvordan man skal få gjort dette.

 

Slik ser koden hvor databaseinnholdet kommer:

echo " 
 <table width='100%' border='1'>
 <tr>
 <td>";

 echo $row[post_text];

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

Endret av TheClown
Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+142

Jeg fant svaret med mitt første søk jeg :)

 

Søk: bbkode

Resultat #1 ;)

 

 

 

Aha, det var feilen ja :p:blush:

Takk Ernie :) (Føler jeg lærer mye av deg for tiden :p)

 

Legger ut hele funksjonen jeg, i tilfelle noen trenger den ;)

 

PHP

<?php

 

function bbkoder ($str) {

 

$bbkoder = array(

'/(.*?)/is',  

'/(.*?)/is',  

'/(.*?)/is',

'/[p](.*?)[/p]/is',

'/(.*?)/is',

'/(.*?)/is',

'/(.*?)/is',

'/(.*?)/is'

);

 

$erstatt = array(

'<b>$1</b>',

'<i>$1</i>',

'<u>$1</u>',

'<p>$1</p>',

'<img src="$1" class="utskrift" />',

'<a href="$1" rel="external">$1</a>',

'<a href="$1" rel="extrenal">$2</a>',

'<img src="$1" class="utskrift" />'

);

 

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

 

return $str;

 

}

?>

 

=

 

» [p*]Avsnitt[/p*]

» [h3*]Overskrift[/h3*]

» [b*]Tjukk tekst[/b*]

» [i*]Skrå tekst[/i*]

» [u*]Underlinje[/u*]

» [url*]adresse[/url*]

» navn[/url*]

» bilde adresse* (Bilde)

 

Uten stjerne før ] btw, forumet omgjør alt til "ikkeBB-koder" om jeg ikke legger ved stjernen ;)

 

Brukes slik:

 

evnt. med mysql ol. menmen..

 

rel="external" og class="utskrift" er jo ting som jeg har lagt til for eget behov..

Må nesten tilpasses den enkelte side ;)

 

 

Lenke til kommentar

Fatal error: Cannot redeclare bbkoder() (previously declared in /mounted-storage/home20a/sub001/sc20063-GJYD/ru.net/portal/pinc/idx.php:50) in /mounted-storage/home20a/sub001/sc20063-GJYD/ru.net/portal/pinc/idx.php on line 50

 

Kan du fortelle meg om jeg skal gjøre noen strings eller noe om i scriptet du posta? Prøvd litt forskjellige med fikk ikke noe til.

Lenke til kommentar
Gjest Slettet+142

Høh?

 

PHP
<?php

 

function bbkoder ($str) {

 

$bbkoder = array(

'/(.*?)/is',  

'/(.*?)/is',  

'/(.*?)/is',

'/[p](.*?)[/p]/is',

'/(.*?)/is',

'/(.*?)/is',

'/(.*?)/is',

'/(.*?)/is'

);

 

$erstatt = array(

'<b>$1</b>',

'<i>$1</i>',

'<u>$1</u>',

'<p>$1</p>',

'<img src="$1" class="utskrift" />',

'<a href="$1" rel="external">$1</a>',

'<a href="$1" rel="extrenal">$2</a>',

'<img src="$1" class="utskrift" />'

);

 

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

 

return $str;

 

}

 

 

$streng_fra_db "Fet tekstDette er en link";

echo bbkoder($streng_fra_db);

?>

 

Jeg vil tro at feilmeldingen du får, kommer av at du allerede har en funksjon som kalles bbkoder i koden din.

Endret av Slettet+142
Lenke til kommentar
Warning: preg_replace() [function.preg-replace]: Unknown modifier 'b' in /mounted-storage/home20a/sub001/sc20063-GJYD/ru.net/portal/pinc/idx.php on line 74

Warning: preg_replace() [function.preg-replace]: Unknown modifier ']' in /mounted-storage/home20a/sub001/sc20063-GJYD/ru.net/portal/pinc/idx.php on line 74

Warning: preg_replace() [function.preg-replace]: Unknown modifier ']' in /mounted-storage/home20a/sub001/sc20063-GJYD/ru.net/portal/pinc/idx.php on line 74

Warning: preg_replace() [function.preg-replace]: Unknown modifier 'p' in /mounted-storage/home20a/sub001/sc20063-GJYD/ru.net/portal/pinc/idx.php on line 74

Warning: preg_replace() [function.preg-replace]: Unknown modifier 'g' in /mounted-storage/home20a/sub001/sc20063-GJYD/ru.net/portal/pinc/idx.php on line 74

Warning: preg_replace() [function.preg-replace]: Unknown modifier 'r' in /mounted-storage/home20a/sub001/sc20063-GJYD/ru.net/portal/pinc/idx.php on line 74

Warning: preg_replace() [function.preg-replace]: Unknown modifier 'r' in /mounted-storage/home20a/sub001/sc20063-GJYD/ru.net/portal/pinc/idx.php on line 74
[urlwwwrnerkeundonet]RnerkeUndonet[/url]: V har lat en del nye funksjoner o tn so er verdt å skjekke ut, les er [urlhttp://rnerkeundonet/foru/vewtopcphpt48]her[/url]

Lenke til kommentar

<?php

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 href="$1" rel="external">$1</a>',
     '<a href="$1" rel="extrenal">$2</a>',
     '<img src="$1" class="utskrift" />'
 );

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


$streng_fra_db = "[b]Fet tekst[/b][url=http://adresse.no]Dette er en link[/url]";
echo bbkoder($streng_fra_db);
?>
]

 

Sånn, det er viktig å hugse å escape [ og ]. http:// matcher bokstaven u, r eller l mens \[url\] matcher teksten .

Det andre problemet var at avslutter patternet og dermed fikk du feilmeldinger, dette skal se slik ut: \[\/url\]

 

Runar

Endret av Runar0
Lenke til kommentar
Gjest Slettet+142

Kremt, jeg mente å tro at det emnet var løst jeg :p

 

Men da du escapet regex-ene, Runar0, ser det ut som du har vært litt for kjapp på url.. hvor det ble seende slik ut: '/\[ur\](.*?)\[\/url\]/is', :p

 

Rettet Kode:

<?php

function bbkoder ($str) {

$bbkoder = array(
    '/\[b\](.*?)\[\/b\]/is',                              
    '/\[i\](.*?)\[\/i\]/is',                              
    '/\[u\](.*?)\[\/u\]/is',
    '/\[p\](.*?)\[\/p\]/is',
    '/\[img\](.*?)\[\/img\]/is',
    '/\[url\](.*?)\[\/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 href="$1" rel="external">$1</a>',
    '<a href="$1" rel="extrenal">$2</a>',
    '<img src="$1" class="utskrift" />'
);

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

return $str;

}


$streng_fra_db = "[b]Fet tekst[/b][url=http://adresse.no]Dette er en link[/url]";
echo bbkoder($streng_fra_db);
?>

Lenke til kommentar

Joda, første loop funker utmerket den. Men i loop nr 2 får jeg denne meldingen:

 

Fatal error: Cannot redeclare bbkoder() (previously declared in /mounted-storage/home20a/sub001/sc20063-GJYD/ru.net/portal/pinc/idx.php:50) in /mounted-storage/home20a/sub001/sc20063-GJYD/ru.net/portal/pinc/idx.php on line 50

 

50 function bbkoder ($str) {
51
52 $bbkoder = array(

 

$result=mysql_query($sql);
while ($row=mysql_fetch_assoc($result))
{

 

En slik loop bruker jeg.

Lenke til kommentar
Gjest Slettet+142

Tar jeg feil hvis jeg sier at du har lagt koden som ligger over inn innenfor while-klemmene?

 

Kan vi få se litt av koden i og rundt den while-løkken din, så kan vi se om vi finner en løsning?

Lenke til kommentar

Det er helt riktig.

 

Her er hele fila borsett fra $connect infoen :)

 

 

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

$result=mysql_query($sql);
while ($row=mysql_fetch_assoc($result))
{
 echo " 
 <table width='100%' border='1'>
 <tr>
 <td>";

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

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

 //Slutt på Tittelbox

 echo " 
 <table width='100%' border='1'>
 <tr>
 <td>";

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 href="$1" rel="external">$1</a>',
    '<a href="$1" rel="extrenal">$2</a>',
    '<img src="$1" class="utskrift" />'
);

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

return $str;

}
 echo bbkoder($row[post_text]);

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

 //Slutt på Mainbox

 echo " 
 <table width='100%' border='1'>
 <tr>
 <td>";

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

 echo "
 </td>
 <td>";

 echo "<b>Publisert:</b> $row[topic_time]";

 echo "
 </td>
 <td>";

 echo "<b>Kommentarer:</b> $row[topic_replies]";

 echo "
 </td>
 <td>";

 echo "<a 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 href='http://ringerikeungdom.net/forum/viewforum.php?f=1'>« Eldre nyheter</a>";

?>

 

Lenke til kommentar

Du må legge funksjonen på utsida av while løkka slik som dette:

 

Klikk for å se/fjerne innholdet nedenfor


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 href="$1" rel="external">$1</a>',
'<a href="$1" rel="extrenal">$2</a>',
'<img src="$1" class="utskrift" />'
);

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

return $str;

}

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

$result=mysql_query($sql);
while ($row=mysql_fetch_assoc($result))
{
echo "
<table width='100%' border='1'>
<tr>
<td>";

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

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

//Slutt på Tittelbox

echo "
<table width='100%' border='1'>
<tr>
<td>";

echo bbkoder($row[post_text]);

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

//Slutt på Mainbox

echo "
<table width='100%' border='1'>
<tr>
<td>";

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

echo "
</td>
<td>";

echo "<b>Publisert:</b> $row[topic_time]";

echo "
</td>
<td>";

echo "<b>Kommentarer:</b> $row[topic_replies]";

echo "
</td>
<td>";

echo "<a 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 href='http://ringerikeungdom.net/forum/viewforum.php?f=1'>« Eldre nyheter</a>";

?>

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