UBB Code's
Dement - 07/07/2005 19:46 (laatste wijziging 07/07/2005 19:47)
Nieuw lid
ik heb een nieuws systeem met ubb gemaakt maar het werkt niet.
dit is m'n script:
<?php
$bericht = str_replace("[b]","<b>",$bericht);
$bericht = str_replace("[/b]","</b>",$bericht);
$bericht = str_replace("[i]","<i>",$bericht);
$bericht = str_replace("[/i]","</i>",$bericht);
$bericht = str_replace("[u]","<u>",$bericht);
$bericht = str_replace("[/u]","</u>",$bericht);
db_connect();
$query = "SELECT * FROM `nieuws` ORDER BY id"; //Query aamaken
$sql = mysql_query($query) or die(mysql_error()); // Query uitvoeren
while($record = mysql_fetch_object($sql))
{
echo"<b>$record->titel</b> - By: <i>$record->auteur</i> @ $record->datum<br>
<br>$record->bericht<br>
------------------------------------------------------<br><br>
";
}
?>
<?php
db_connect( ) ;
$query = "SELECT * FROM `nieuws` ORDER BY id" ; //Query aamaken
{
echo "<b>$record->titel </b> - By: <i>$record->auteur </i> @ $record->datum <br> <br>$record->bericht <br>
------------------------------------------------------<br><br>
" ;
}
?>
in mijn post staan dan gewoon [b ] en [/b ]
ik snap het niet...
8 antwoorden
Gesponsorde links
rambo - 07/07/2005 19:48
HTML beginner
Probeer dit eens:
<?php
db_connect();
$query = "SELECT * FROM `nieuws` ORDER BY id"; //Query aamaken
$sql = mysql_query($query) or die(mysql_error()); // Query uitvoeren
while($record = mysql_fetch_object($sql))
{
$bericht = $record->bericht;
$bericht = str_replace("[b]","<b>",$bericht);
$bericht = str_replace("[/b]","</b>",$bericht);
$bericht = str_replace("[i]","<i>",$bericht);
$bericht = str_replace("[/i]","</i>",$bericht);
$bericht = str_replace("[u]","<u>",$bericht);
$bericht = str_replace("[/u]","</u>",$bericht);
echo"<b>" . $record->titel . "</b> - By: <i>" . $record->auteur . "</i> @ " . $record->datum . "<br>
<br>" . $bericht . "<br>
------------------------------------------------------<br><br>
";
}
?>
<?php
db_connect( ) ;
$query = "SELECT * FROM `nieuws` ORDER BY id" ; //Query aamaken
{
$bericht = $record -> bericht ;
echo "<b>" . $record -> titel . "</b> - By: <i>" . $record -> auteur . "</i> @ " . $record -> datum . "<br> <br>" . $bericht . "<br>
------------------------------------------------------<br><br>
" ;
}
?>
Rens - 07/07/2005 19:51 (laatste wijziging 07/07/2005 19:53)
Crew algemeen
En waar hoort $bericht vandaan te komen?
Juist, die begint pas in de while loop .
Ik zou het in een functie zetten, 1 keer de functie maken en je kunt hem altijd aanroepen.
En (natuurlijk) vars BUITEN quotes.
Zo dus:
<?PHP
function ubb($sBericht)
{
$sReturn = str_replace("[b]","<b>",$sBericht);
$sReturn = str_replace("[/b]","</b>",sReturn);
$sReturn = str_replace("[i]","<i>",sReturn);
$sReturn = str_replace("[/i]","</i>",sReturn);
$sReturn = str_replace("[u]","<u>",sReturn);
$sReturn = str_replace("[/u]","</u>",sReturn);
return $sReturn;
}
db_connect();
$query = "SELECT * FROM `nieuws` ORDER BY id"; //Query aamaken
$sql = mysql_query($query) or die(mysql_error()); // Query uitvoeren
while($record = mysql_fetch_assoc($sql))
{
echo "<b>".$record['titel']."</b> - By:<i>".$record['auteur']."</i> @ ".$record['datum']."<br><br>".ubb($record['bericht'])."<br>------------------------------------------------------<br><br>";
}
?>
<?PHP
function ubb( $sBericht )
{
return $sReturn ;
}
db_connect( ) ;
$query = "SELECT * FROM `nieuws` ORDER BY id" ; //Query aamaken
{
echo "<b>" . $record [ 'titel' ] . "</b> - By:<i>" . $record [ 'auteur' ] . "</i> @ " . $record [ 'datum' ] . "<br><br>" . ubb
( $record [ 'bericht' ] ) . "<br>------------------------------------------------------<br><br>" ; }
?>
BonMarche - 07/07/2005 20:04 (laatste wijziging 07/07/2005 20:04)
PHP beginner
dit is niet zo slim. in een tabel heb je hier niet zoveel last van, maar stel dat er in het bericht alleen een [ b ] tag staat en dus geen [ /b ] tag, dan wordt alle tekst daaronder ook vet.
Je kunt beter een reguliere expressie gebruiken, dan worden (afhankelijk van de regex) alleen netjes gesloten tags omgezet:
<?php
$bericht = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>\1</b>', $bericht);
?>
<?php
$bericht = preg_replace ( '#\[b\](.*?)\[/b\]#si' , '<b>\1</b>' , $bericht ) ; ?>
door die i (#si ) is hij niet hoofdlettergevoelig. als hij dat dus wel moet zijn kun je de i weghalen.
Dement - 07/07/2005 20:38 (laatste wijziging 07/07/2005 20:41)
Nieuw lid
Het werkt niet =(
ik heb nu dit:
<?php
db_connect();
$query = "SELECT * FROM `nieuws` ORDER BY id"; //Query aamaken
$sql = mysql_query($query) or die(mysql_error()); // Query uitvoeren
while($record = mysql_fetch_object($sql))
{
$bericht = $record->bericht;
$bericht = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>\1</b>', $bericht);
$bericht = str_replace('#\[i\](.*?)\[/i\]#si', '<i>\1</i>',$bericht);
$bericht = str_replace('#\[u\](.*?)\[/u\]#si', '<b>\1</b>',$bericht);
echo"<b>$record->titel</b> - By: <i>$record->auteur</i> @ $record->datum<br>
<br>$record->bericht<br>
------------------------------------------------------<br><br>
";
}
?>
<?php
db_connect( ) ;
$query = "SELECT * FROM `nieuws` ORDER BY id" ; //Query aamaken
{
$bericht = $record -> bericht ;
$bericht = preg_replace ( '#\[b\](.*?)\[/b\]#si' , '<b>\1</b>' , $bericht ) ; $bericht = str_replace ( '#\[i\](.*?)\[/i\]#si' , '<i>\1</i>' , $bericht ) ; $bericht = str_replace ( '#\[u\](.*?)\[/u\]#si' , '<b>\1</b>' , $bericht ) ;
echo "<b>$record->titel </b> - By: <i>$record->auteur </i> @ $record->datum <br> <br>$record->bericht <br>
------------------------------------------------------<br><br>
" ;
}
?>
ik heb nog een vraag, hoe kan ik ervoor zorgen dat als ik een regel openlaat dat dat ook daadwerkelijk gebeurt in men post??
maar ik bedoel dus niet
<?php str_replace("[br]","<br>",$Bericht); ?>
AcIdBuRn - 07/07/2005 21:44
HTML beginner
regel openlaten na enter in bericht:
de fout in je gehele script kan in het volgende zitten:
<?php
$bericht = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>\1</b>', $bericht);
$bericht = str_replace('#\[i\](.*?)\[/i\]#si', '<i>\1</i>',$bericht);
$bericht = str_replace('#\[u\](.*?)\[/u\]#si', '<b>\1</b>',$bericht);
?>
<?php
$bericht = preg_replace ( '#\[b\](.*?)\[/b\]#si' , '<b>\1</b>' , $bericht ) ; $bericht = str_replace ( '#\[i\](.*?)\[/i\]#si' , '<i>\1</i>' , $bericht ) ; $bericht = str_replace ( '#\[u\](.*?)\[/u\]#si' , '<b>\1</b>' , $bericht ) ; ?>
Dit moet zijn:
<?php
$bericht = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>\1</b>', $bericht);
$bericht = preg_replace('#\[i\](.*?)\[/i\]#si', '<i>\1</i>',$bericht);
$bericht = preg_replace('#\[u\](.*?)\[/u\]#si', '<u>\1</u>',$bericht);
?>
<?php
$bericht = preg_replace ( '#\[b\](.*?)\[/b\]#si' , '<b>\1</b>' , $bericht ) ; $bericht = preg_replace ( '#\[i\](.*?)\[/i\]#si' , '<i>\1</i>' , $bericht ) ; $bericht = preg_replace ( '#\[u\](.*?)\[/u\]#si' , '<u>\1</u>' , $bericht ) ; ?>
Dement - 07/07/2005 22:30
Nieuw lid
het werkt nog altijd niet
er staat nog altijd gewoon [ b ] en [/ b ]
en die regel openlaten ook niet
maar moet die ubb code gewoon komen te staan waar dat bericht word getoont of moet ie ook ergens anders staan??
dit heb ik nu:
<?php
db_connect();
$query = "SELECT * FROM `nieuws` ORDER BY id"; //Query aamaken
$sql = mysql_query($query) or die(mysql_error()); // Query uitvoeren
while($record = mysql_fetch_object($sql))
{
$bericht = $record->bericht;
nl2br($bericht);
$bericht = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>\1</b>', $bericht);
$bericht = preg_replace('#\[i\](.*?)\[/i\]#si', '<i>\1</i>',$bericht);
$bericht = preg_replace('#\[u\](.*?)\[/u\]#si', '<u>\1</u>',$bericht);
echo"<b>$record->titel</b> - By: <i>$record->auteur</i> @ $record->datum<br>
<br>$record->bericht<br>
------------------------------------------------------<br><br>
";
}
?>
<?php
db_connect( ) ;
$query = "SELECT * FROM `nieuws` ORDER BY id" ; //Query aamaken
{
$bericht = $record -> bericht ;
$bericht = preg_replace ( '#\[b\](.*?)\[/b\]#si' , '<b>\1</b>' , $bericht ) ; $bericht = preg_replace ( '#\[i\](.*?)\[/i\]#si' , '<i>\1</i>' , $bericht ) ; $bericht = preg_replace ( '#\[u\](.*?)\[/u\]#si' , '<u>\1</u>' , $bericht ) ;
echo "<b>$record->titel </b> - By: <i>$record->auteur </i> @ $record->datum <br> <br>$record->bericht <br>
------------------------------------------------------<br><br>
" ;
}
?>
ik snap er nix van
Rens - 07/07/2005 22:47 (laatste wijziging 07/07/2005 22:48)
Crew algemeen
Je hebt bij het echoën van het bericht nog steeds $record->bericht staan, dat zal niet werken neej^^
En hou die variabelen nou eens buiten quotes:!:
<?PHP
db_connect();
$query = "SELECT * FROM nieuws ORDER BY id"; //Query aamaken
$sql = mysql_query($query) or die(mysql_error()); // Query uitvoeren
while($record = mysql_fetch_assoc($sql))
{
$bericht = $record['bericht'];
$bericht = nl2br($bericht);
$bericht = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>\1</b>', $bericht);
$bericht = preg_replace('#\[i\](.*?)\[/i\]#si', '<i>\1</i>',$bericht);
$bericht = preg_replace('#\[u\](.*?)\[/u\]#si', '<u>\1</u>',$bericht);
echo "<b>".$record['titel']."</b> - By: <i>".$record['auteur']."</i> @ ".$record['datum']."<br><br>".$bericht."<br>------------------------------------------------------<br><br>";
}
?>
<?PHP
db_connect( ) ;
$query = "SELECT * FROM nieuws ORDER BY id" ; //Query aamaken
{
$bericht = $record [ 'bericht' ] ;
$bericht = nl2br ( $bericht ) ; $bericht = preg_replace ( '#\[b\](.*?)\[/b\]#si' , '<b>\1</b>' , $bericht ) ; $bericht = preg_replace ( '#\[i\](.*?)\[/i\]#si' , '<i>\1</i>' , $bericht ) ; $bericht = preg_replace ( '#\[u\](.*?)\[/u\]#si' , '<u>\1</u>' , $bericht ) ;
echo "<b>" . $record [ 'titel' ] . "</b> - By: <i>" . $record [ 'auteur' ] . "</i> @ " . $record [ 'datum' ] . "<br><br>" . $bericht . "<br>------------------------------------------------------<br><br>" ; }
?>
Dement - 07/07/2005 23:32
Nieuw lid
Thanx works!
Gesponsorde links
Dit onderwerp is gesloten .