Avatar billede doomstone-dk- Nybegynder
07. februar 2005 - 21:26 Der er 6 kommentarer og
1 løsning

Noget bbcode

Jeg har en hjemmeside hvor en bruger kan lave en quote af noget en anden har sagt!
"[quote=USER]TEXT[/quote]" <- sådan ser den ud!

Sådan her ser den tabel ud som teksten skal sættes ind i!
<table width="90%" cellspacing="1" cellpadding="3" border="0" align="center">
  <tr>
    <td class="genmed"><b>USER skrev:</b></td>\n";
  </tr>
  <tr>
    <td class="quote">
      TEXT
    </td>
  </tr>
</table>

Hvordan kan man gøre det hvor den også supporte en streng som indeholder 2 qoutes inden i hinanden?
[quote=USER][quote=USER]TEXT[/quote]TEXT[/quote]
Avatar billede hmortensen Nybegynder
08. februar 2005 - 02:45 #1
En mulighed:

<?php

$str = "[quote=Jens][quote=Hans]Hans sagde hej[/quote]Og Jens svarede hej[/quote]<br /><br />Hej med dig!";


function Quote($str)
{
    $tmp = preg_replace("/\[quote=(.*)\](.*)\[\/quote\]/Umis","
<table width=\"90%\" cellspacing=\"1\" cellpadding=\"3\" border=\"0\" align=\"center\">
  <tr>
    <td class=\"genmed\"><b>$1:</b></td>
  </tr>
  <tr>
    <td class=\"quote\">
      $2
    </td>
  </tr>
</table>
" , $str);
    if (preg_match("/\[quote=(.*)\](.*)\[\/quote\]/Umis",$tmp))
    {
        $tmp = Quote($tmp);
    }
    return $tmp;
}

echo Quote($str);

?>
Avatar billede doomstone-dk- Nybegynder
09. februar 2005 - 19:31 #2
Takker det virker jo som det skal :) kan du ikke også skrive noget som et svar?
Avatar billede doomstone-dk- Nybegynder
09. februar 2005 - 19:56 #3
Jeg her lige en ting til jeg skal spøre om :)
Jeg har nemlig også sådan at man kan skrive noget kode!
function Code($str)
{
    $tmp = preg_replace("/\[code=(.*)\](.*)\[\/code\]/Umis","
<table width=\"90%\" cellspacing=\"1\" cellpadding=\"3\" border=\"0\" align=\"center\">
  <tr>
    <td class=\"genmed\"><b>$1:</b></td>
  </tr>
  <tr>
    <td class=\"quote\"><code>$2</code></td>
  </tr>
</table>
" , $str);
    if (preg_match("/\[code=(.*)\](.*)\[\/code\]/Umis",$tmp))
    {
        $tmp = Code($tmp);
    }
    return $tmp;
}

Så jeg vil gerne have sådan at $2 skrive kørt igennem highlight_string().
men når jeg gøre det får jeg en fejl! Hvordan kan jeg gøre det?
Avatar billede hmortensen Nybegynder
09. februar 2005 - 19:57 #4
Det var så lidt
Avatar billede hmortensen Nybegynder
09. februar 2005 - 19:58 #5
Ved ik om jeg forstår dig rigtig, men prøv at udskifte den her linie:
<td class=\"quote\"><code>$2</code></td>

med:
<td class=\"quote\"><code>".highlight_string($2)."</code></td>
Avatar billede doomstone-dk- Nybegynder
09. februar 2005 - 20:12 #6
Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in c:\Server\web\edb\include\function.php on line 157 <-- Får denne fejl så

function Code($str)
{
    $tmp = preg_replace("/\[code](.*)\[\/code\]/Umis","
<table width=\"90%\" cellspacing=\"1\" cellpadding=\"3\" border=\"0\" align=\"center\">
  <tr>
    <td class=\"quote\">".highlight_string($1,TRUE)."</td>
  </tr>
</table>
", $str);
    if (preg_match("/\[code](.*)\[\/code\]/Umis",$tmp))
    {
        $tmp = Code($tmp);
    }
    return $tmp;
}
Avatar billede doomstone-dk- Nybegynder
09. februar 2005 - 21:12 #7
Jeg tængte på at sætte <code> og </code> ud om teksten!
så stå serstatte "<code>".$text."</code>" med highlight_string($2,TRUE)
efter selve functionen Code blev kørt!
Men det virkede ikke rigtigt!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester