webForumDet fria alternativet

Hjälp med [b][/b]

PHP

14 svar · 911 visningar · startad av Emil W

Medlem sedan mars 2009512 inlägg
Frågan#1

vad ska jag använda för funktion för jag vill göra så att man kan få fet text när man skriver in

[B][/B]

i formuläret

Medlem sedan feb. 20034 441 inlägg
#2

Använd gärna sökfunktionen innan du skriver ett nytt inlägg. En sökning hittade bl.a. det här inlägget:
http://www.webforum.nu/showthread.php?t=91788&highlight=forumkod

Medlem sedan mars 2009512 inlägg
#3

ok

Medlem sedan mars 2009512 inlägg
#4

Jag förstår inte den koden varför står det $1 i den koden

Min textruta heter meddelande

Medlem sedan feb. 20034 441 inlägg
#5

Den där koden ska "köra" när inläggen visas på din hemsida. Du sparar texten från formuläret som vanligt i din databas. Sen när du visar inläggen på din hemsida:

function bbcode($text = ""){
   $text = preg_replace("/\[citat=([^\]]+)]/is", "<div><b>$1 skrev:</b>\n$2", $text);
   $text = preg_replace("/\[\/citat]/is", "\n</div>\n", $text);
   $text = preg_replace( "'\[B\](.*?)\[/B\]'is","<b>$1</b>",$text);
   $text = preg_replace( "'\[I\](.*?)\[/I\]'is","<i>$1</i>",$text);
   $text = preg_replace( "'\[U\](.*?)\[/U\]'is","<u>$1</u>",$text);
   return $text;
}

Sen när du skriver ut inlägget på sidan:

echo bbcode($res['falt_i_databasen']);
Medlem sedan mars 2009512 inlägg
#6

vad är $res för något

Medlem sedan feb. 20034 441 inlägg
#7

Emil W skrev:

vad är $res för något

Ditt recordset.. Testa det här:

$minbb = "text som är [b]fet[/b], [i]kursiv[/i] och [u]understruken[/u].";
echo bbcode($minbb);
Medlem sedan mars 2009512 inlägg
#8

Måste det vara så mycket tecken i mellan preg_replace()

Medlem sedan mars 2009512 inlägg
#9

om jag har en textarea som heter text

vart sätter jag in det i koden

för jag har en kolumn i databasen som heter text

vad måste man ändra i koden ?

Medlem sedan mars 2009512 inlägg
#10

När jag använder koden så får jag dessa fel meddelanden

Notice: Undefined variable: text in C:\wamp\www\beta\visatrad.php on line 53

Notice: Undefined variable: text in C:\wamp\www\beta\visatrad.php on line 54

Notice: Undefined variable: text in C:\wamp\www\beta\visatrad.php on line 55

Notice: Undefined variable: text in C:\wamp\www\beta\visatrad.php on line 56

här mitt försök

function bbcode ($textt =""){
$textt = preg_replace("'\[B\](.*?)\[/B\]'is","<b>$text</b>",$textt);
$textt = preg_replace("'\[U\](.*?)\[/U\]'is","<u>$text</u>",$textt);
$textt = preg_replace("'\[B\](.*?)\[/B\]'is","<b>$text</b>",$textt);
$textt = preg_replace("'\[B\](.*?)\[/B\]'is","<b>$text</b>",$textt);
return $textt;
}

så här gör jag när jag skriver ut

while($row = mysql_fetch_array($resultt))
{
echo "<div class=\"svarbox\">";
echo "Postat av ".$row['namn']." ".$row['datum'];
echo "<hr color=\"#000000\">";
echo "<a href=\"uppladdat/{$row['file']}\">Länk till bifogad fil</a><br><br>";
echo bbcode($row['text']);

echo "</div>";
}
Medlem sedan jan. 2005953 inlägg
#11

$1 är en referens till innehållet i den första parentesen i det reguljära uttrycket. Du ska alltså inte byta ut $1 mot $text.

Du kan läsa mer i manualen om hur reguljära uttryck fungerar i PHP.

http://www.php.net/pcre/

Medlem sedan mars 2009512 inlägg
#12

Tack för hjälpen

Medlem sedan mars 2009512 inlägg
#13

hur ska jag göra nu så att inte html-kod funkar

ska man göra så här

echo htmlspecialchars,bbcode($row['text']);

Medlem sedan juni 20019 519 inlägg
#14

nu kör htmlspecialchars före din bbcode, annars s skriver htmlspecialchars över din bbcode funkion.

echo bbcode(htmlspecialchars($row['text']));
Medlem sedan mars 2009512 inlägg
#15

Funkar perfekt tack voigtann1

262 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)