Avatar billede hmmhelpinghmm Nybegynder
22. august 2004 - 18:52 Der er 22 kommentarer og
1 løsning

ignorer ikke strip tags?

Jeg kender i forvejen koden til at fjerne tags som <b> men nu har jeg så det problem at jeg gerne vil beholde dem så de kan vises på en side, ligesom her på eksperten, hvordan kan jeg ignore funktionen af tags, men i stedet vise dem?

fx.

<?
echo "hej";
?>

På min side vil den jo der bare skrive hej! men hele koden skal vises som her i stedet!
Avatar billede dennismp Nybegynder
22. august 2004 - 19:06 #1
Jeg forstår ikke spørgsmålet.

print '<b>test</b>';
..
print "<?\necho \"hej\";\n?>\n";

print '<?
echo "hej";
?>';

osv.

Hvad er problemet? Det virker da fint. Vil du gerne "undgå" at den stripper alle tags?

echo strip_tags($text, '<p>');

vil ikke strippe <p>-tags
Avatar billede hmmhelpinghmm Nybegynder
22. august 2004 - 19:09 #2
nej ikke det, når du sætter et script ind som fx.
<?
echo "hej";
?>

Så vil min side jo bare udskrive
hej

Men som du kan se så vises
<?
echo "hej";
?>
som normalt på siden, og ikke i "udført form"
Du kan skrive alle de tags du vil her, dem udfører den ikke, men den skal skrive det.

fx.
<b>hej</b>
På min side bliver det til fed skrift, her på siden står der stadig
<b>hej</b>

Hvordan laver man det?
Avatar billede angelod Novice
22. august 2004 - 19:19 #3
Mener du som dette?

nl2br(htmlspecialchars('Tekst med <b>tags</b>'));

Du kan udelade nl2br hvis du ikke ønsker at den skal lave linjeskift om til <br> tags.
Avatar billede hmmhelpinghmm Nybegynder
22. august 2004 - 19:24 #4
Den udskriver intet, blank

har prøvet

<?
nl2br(htmlspecialchars('Tekst med <b>tags</b>'))
(htmlspecialchars('Tekst med <b>tags</b>'));
?>

og

<?
echo "nl2br(htmlspecialchars('Tekst med <b>tags</b>'))";
echo "(htmlspecialchars('Tekst med <b>tags</b>'))";
?>
Avatar billede dennismp Nybegynder
22. august 2004 - 19:25 #5
Ah :).

Jammen, så har angelod allerede svaret.
Avatar billede dennismp Nybegynder
22. august 2004 - 19:26 #6
nej,

echo nl2br(htmlspecialchars('Tekst med <b>tags</b>'));

eksempelvis
Avatar billede hmmhelpinghmm Nybegynder
22. august 2004 - 19:27 #7
hvad så når man udelader som angelod skriver, så laver skriver den da det samme!
hvad funktion har det?
Avatar billede hmmhelpinghmm Nybegynder
22. august 2004 - 19:34 #8
har læst her men forstår ikke meget af det
http://dk2.php.net/manual/da/function.nl2br.php

hvad så når man udelader som angelod skriver, så laver skriver den da det samme!
hvad funktion har det?

Hvis jeg fjerner nl2br
så skriver den stadig <br>

hvad er galt
Avatar billede dennismp Nybegynder
22. august 2004 - 19:40 #9
nl2br laver linjeskift om til <br>. Så den vil aldrig fjerne <br>. Hvis du smider en <br> igennem htmlspecialchars() så bliver den lavet om til &gt;br&lt; istedet.

$str = "linje1\nlinje2\nlinje3";

print "direkte: $str<br>";
print "htmlspecialchars(\5str): " . htmlspecialchars($str) . '<br>';
print "nl2br(\$str): " . nl2br($str) . "<br>";
print "htmlspecialchars(nl2br(\$str)): " . htmlspecialchars(nl2br($str)) . '<br>';

"Hvis jeg fjerner nl2br så skriver den stadig <br>"

Ja, hvis du har <br> i teksten før du bruger nl2br, så vil den self. være - hvis du fjerner den.
Avatar billede hmmhelpinghmm Nybegynder
22. august 2004 - 20:01 #10
Hvordan gør jeg sådan (DET ER ET MAILSYSTEM) at når en mail sendes, så laver den både linjeskift og derefter "deaktiverer" den tags?

Hej<br><b>hej igen</b>

Skal så udprintes
Hej
<b>hej igen</b>

Jeg kan evt lave <br> om til \n hvis det skal være!
Avatar billede dennismp Nybegynder
22. august 2004 - 20:07 #11
Det er nok det nemmeste. For htmlspecialchars() behandler en hel string.

$text = "<br><b>Hej igen</b<";
print htmlspecialchars(str_replace('<br>',"\n",$text));

burde  virke..
Avatar billede hmmhelpinghmm Nybegynder
22. august 2004 - 20:10 #12
Virker ik udskriver a <b>Hej igen</b>

$tekst = "a<br>Hej igen</b>";
Avatar billede hmmhelpinghmm Nybegynder
22. august 2004 - 20:19 #13
Vi kan lige starte med, hvordan gør man sådan, at den skal udelade <b><u> og <i>

???
Avatar billede dennismp Nybegynder
22. august 2004 - 20:37 #14
Source:
$text = "Hej<br><b>Hej igen</b>";
print htmlspecialchars(str_replace('<br>',"\n",$text));

output:
Hej
&lt;b&bt;Hej igen&lt;b&bt;

Hvis den skal skrive <b> istedet for: &lt;b&bt; fjerner man bare htmlspecialchars.

>> Vi kan lige starte med, hvordan gør man sådan, at den skal udelade <b><u> og <i>

Hvad betyder udelade? Er det fjerne ? Det skrev du ellers du godt kunne.. Men se på strip_tags.

Kik på funktionerne
php.net/strip_tags
php.net/htmlspecialchars
php.net/nl2br
Avatar billede hmmhelpinghmm Nybegynder
22. august 2004 - 20:41 #15
Det jeggodtkunne var strip tags, men kan ikke hitte ud af det andet!

Hvordan gør man sådan at hvis der står fx. <p> så viser den det som normalt med det htmlspecialchars, men hvis der står enten <b> eller <i> eller <u> så skal den som sædvanlig understrege eller gøre den fed eller lave til skråskrift!

KAn du ikke hjælpe kan ikke hitteud af det med det på php.net
Avatar billede dennismp Nybegynder
22. august 2004 - 20:45 #16
Man kan vel bruge str_replace/strtr/preg_replace til at erstatte <p> med &lt;p&gt;
Avatar billede hmmhelpinghmm Nybegynder
22. august 2004 - 20:55 #17
hvad formål har det?
Avatar billede dennismp Nybegynder
22. august 2004 - 22:53 #18
Det her: "<p> så viser den det som normalt med det htmlspecialchars"
Avatar billede hmmhelpinghmm Nybegynder
23. august 2004 - 09:47 #19
Nej jeg laver bare som det er på 1go og de steder, jeg laver det om til at når den skal bruge fed så skriver den bare [b] i stedet for, så kan jeg efter jeg har brugt htmlspecialchars bare skrive str_replace("[b]", "<b>", $tekst)

Så for jeg den fed alligevel, og det samme kan jeg gøre med alt det andet!

Det eneste jeg så mangler er det med hvordan man laver linjeskift!
Hvis du ikke har bedere forslag kunne jeg jo også bare lave det om til [br] men kan man bruge denne du foreslog, sidder ikke ved min egen pc nu, så jeg kan ikke teste det!

print "nl2br(\$str): " . nl2br($str) . "<br>";
Kan man i det på en måde tilføje det med htmlspecialchars?
Avatar billede dennismp Nybegynder
23. august 2004 - 11:23 #20
nl2br(htmlspeecialchars($str))
Avatar billede hmmhelpinghmm Nybegynder
23. august 2004 - 15:51 #21
Sådan det virker OK nu!

tak for hjælpen smid et svar!

$str = "linje1\nlinje2\nlinje3";
$str = nl2br(htmlspecialchars($str));
$str = str_replace("", "<b>", $str);
$str = str_replace("
", "</b>", $str);
echo $str
Avatar billede dennismp Nybegynder
23. august 2004 - 16:22 #22
svar
Avatar billede hmmhelpinghmm Nybegynder
23. august 2004 - 16:43 #23
Takker! :)
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

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