Avatar billede michaeltryl Seniormester
24. januar 2007 - 11:58 Der er 14 kommentarer og
1 løsning

artikler med mulighed for html

Når man opretter en artikel her på eksperten har man mulighed for at bruge følgende html tags
<b>Fed skrift
<i>Kursiv
<pre>Præformateret tekst
<span>Fremhævet tekst boks i neutral bredde
<div>Fremhævet boks i fuld bredde

Nu er mit spørgsmål hvordan gør man dette? Det bedste ville være nogen sider hvor jeg kan læse mig frem til hvordan man gør.
jeg ved hvordan jeg undgår at html tags bliver betragtet som tags når jeg henter ud fra databsen, men hvordan gør jeg sådan at nogen få kan bruges?
Avatar billede hmortensen Nybegynder
24. januar 2007 - 12:03 #1
Prøv at kigge på strip_tags() (http://se.php.net/strip_tags)
Avatar billede michaeltryl Seniormester
24. januar 2007 - 12:32 #2
jeps det virker, men lige et under spørgsmål. Er det muligt at samle de tre strip_tags i nedstående. jeghar prøvet at adskille tags med komma og & men det virkede ikke

$text = '<p>Test <b><u><i>paragraph.</i></u></b></p><!-- Comment --> Other text';
$tekst = htmlentities($text);
$tekst = nl2br("$text");
$b = strip_tags($tekst, '<b>');
$i = strip_tags($tekst, '<i>');
$u = strip_tags($tekst, '<u>');
echo"$tekst";
Avatar billede hmortensen Nybegynder
24. januar 2007 - 16:06 #3
Sådan her:
$tekst = strip_tags($tekst, "<b>, <i>, <u>")
Avatar billede michaeltryl Seniormester
24. januar 2007 - 17:20 #4
Det virker tildels, men der sker noget forkert i dette script
udskriver jeg $nyhed virker det fint med strip_tags, men ikke hvis jeg udskriver $nyheden som jeg skal for at få linieskift og smiley's med. det er som om at den ikke registrere strip_tags i $nyheden

$nyhed = $d[nyhed];

$overskr = htmlentities($overskrift);
$overskriften = nl2br("$overskr");

$nyhe = htmlentities($nyhed);
$nyheden = nl2br("$nyhe");
$nyhed = strip_tags($nyhed, "<b>, <i>, <u>");

//smileys insættes
$smil = mysql_query("SELECT tekst, billede FROM smiley ORDER BY smilid");
while($smi = mysql_fetch_array($smil))
{
  $nyheden = str_replace($smi['tekst'], "<img border='0' src='$side/smiley/".$smi['billede']."'>", $nyheden);

}
$smil_tekst = $nyheden;
//smiley slut

echo "<p>$nyheden<br><br></p>";
Avatar billede hmortensen Nybegynder
24. januar 2007 - 19:14 #5
Du skal kalde nl2br() efter strip_tags(). Ellers vil den fjerne de "<br />", som du lige har fået lavet "\n" om til.
Avatar billede michaeltryl Seniormester
24. januar 2007 - 19:41 #6
jeg har nu prøvet

$nyhe = htmlentities($nyhed);
$nyhe= strip_tags($nyhe, "<b>, <i>, <u>");
$nyheden = nl2br("$nyhe");

og
$nyhe= strip_tags($nyhe, "<b>, <i>, <u>");
$nyhe = htmlentities($nyhed);
$nyheden = nl2br("$nyhe");

den udskriver stadig alle tags som alm tekst
Avatar billede hmortensen Nybegynder
24. januar 2007 - 22:06 #7
Du skriver nyhed på flere forskellige måder. Prøv at holde det til $nyhed.
Avatar billede michaeltryl Seniormester
24. januar 2007 - 22:21 #8
det hjalp heller ikke hele mit script er her

<?
$id = $_GET[id];
$nyheder = mysql_query("SELECT * , DATE_FORMAT(dato, '%d-%m-%Y') AS dato FROM nyhed WHERE nyhedid = $id");
while ($d = mysql_fetch_assoc($nyheder))
{
$id = $d[nyhedid];
$overskrift = $d[overskrift];
$dato = $d[dato];

$nyhed = $d[nyhed];

$overskr = htmlentities($overskrift);
$overskriften = nl2br("$overskr");

$nyhed = htmlentities($nyhed);
$nyhed = strip_tags($nyhed, "<b>, <i>, <u>");
$nyhed = nl2br("$nyhed");

//smileys insættes
$smil = mysql_query("SELECT tekst, billede FROM smiley ORDER BY smilid");
while($smi = mysql_fetch_array($smil))
{
  $nyhed = str_replace($smi['tekst'], "<img border='0' src='$side/smiley/".$smi['billede']."'>", $nyhed);

}
//smiley slut

echo"<h1>$overskriften <br>Den. $dato</h1>";
echo "<p>$nyhed<br><br></p>";
}
?>
Avatar billede michaeltryl Seniormester
25. januar 2007 - 01:48 #9
sletter jeg $nyhed = htmlentities($nyhed); virker det som det skal og lige i det jeg er ved at lave nå behøves html tags ikke og blive vist på siden, men vil godt vide hvordan jeg kan udskrive html tags som ikke er defineret i strip_tags
kan godt se det logiske i at det nok ikke kan lade sig gøre på den her måde da jeg med htmlentities ber om at få udskrevet alle tags som tekst og så kan strip tags ikke kende de tags den skal vise som tags og omvendt går det også galt.
Avatar billede hmortensen Nybegynder
25. januar 2007 - 02:01 #10
Hvis der er andre tags end de definerede, skal de slettes eller udskrives som tekst da?
Avatar billede michaeltryl Seniormester
25. januar 2007 - 02:26 #11
i det jeg er ved at lave nu skal de bare slettes så der er det nok at bruge strip_tags hvis jeg forstår det korrekt.
Men til enanden gang vil jeg godt vide om jeg kan udskrive de tags som ikke er difineret som alm. tekst
Avatar billede hmortensen Nybegynder
25. januar 2007 - 02:28 #12
Så kan du fx. replace <b> og </b> til og , kører htmlentities(), og så replace tilbage.
Avatar billede michaeltryl Seniormester
25. januar 2007 - 02:32 #13
okay tror jeg har forstået hvad du mener men har lige sat dette eksempel op for at være sikker.

$tekst
//replace <b> og </b> til og i $tekst
$tekst = htmlentities($teskt);
//replace og til <b> og </b> i $tekst
$nyhed = strip_tags($nyhed, "<b>, <i>, <u>");
echo $tekst;
Avatar billede hmortensen Nybegynder
25. januar 2007 - 12:03 #14
Lige præcis.
Avatar billede michaeltryl Seniormester
25. januar 2007 - 12:17 #15
perfekt. tak for hjælpen du har fået point
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