Avatar billede nc85 Nybegynder
24. februar 2005 - 09:32 Der er 11 kommentarer og
1 løsning

hvorfor laver den ikke bare et <br> automatisk?

hey alle...

har et et forum script hvori man indskriver en besked..
så har jeg lavet det sådan at hvis man skriver ":), :-) eller lign smileys eller tegn" så fremkommer der et smiley ikon i stedet...

Min kode for diverse af disse er:

$besked = addslashes($besked);
$besked = stripslashes($besked);
$navn = stripslashes($navn);
$email = stripslashes($email);
$besked = str_replace("@-)", "<img src=\"img/rolleyes.gif\" align=\"middle\">", $besked);
$besked = str_replace("/star", "<img src=\"img/star.gif\" align=\"middle\">", $besked);
$besked = str_replace("/bad", "<img src=\"img/thumbdown.gif\" align=\"middle\">", $besked);
$besked = str_replace("/great", "<img src=\"img/thumbup.gif\" align=\"middle\">", $besked);
$besked = str_replace("/sick", "<img src=\"img/smiley.gif\" align=\"middle\">", $besked);
$besked = str_replace(":||", "<img src=\"img/angry.gif\" align=\"middle\">", $besked);
$besked = str_replace(":-||", "<img src=\"img/angry.gif\" align=\"middle\">", $besked);
$besked = str_replace("8-0", "<img src=\"img/eek.gif\" align=\"middle\">", $besked);
$besked = str_replace("|-I", "<img src=\"img/sleep.gif\" align=\"middle\">", $besked);
$besked = str_replace(":-0", "<img src=\"img/terrefied.gif\" align=\"middle\">", $besked);
$besked = str_replace(":0", "<img src=\"img/terrefied.gif\" align=\"middle\">", $besked);
$besked = str_replace(":-p", "<img src=\"img/tongue.gif\" align=\"middle\">", $besked);
$besked = str_replace(":p", "<img src=\"img/tongue.gif\" align=\"middle\">", $besked);
$besked = str_replace("8-)", "<img src=\"img/cool.gif\" align=\"middle\">", $besked);
$besked = str_replace("8)", "<img src=\"img/cool.gif\" align=\"middle\">", $besked);
$besked = str_replace(":-D", "<img src=\"img/biggrin.gif\" align=\"middle\">", $besked);
$besked = str_replace(":D", "<img src=\"img/biggrin.gif\" align=\"middle\">", $besked);
$besked = str_replace(";)", "<img src=\"img/wink.gif\" align=\"middle\">", $besked);
$besked = str_replace(";-)", "<img src=\"img/wink.gif\" align=\"middle\">", $besked);
$besked = str_replace(":(", "<img src=\"img/frown.gif\" align=\"middle\">", $besked);
$besked = str_replace(":-(", "<img src=\"img/frown.gif\" align=\"middle\">", $besked);
$besked = str_replace(":)", "<img src=\"img/smiley.gif\" align=\"middle\">", $besked);
$besked = str_replace(":-)", "<img src=\"img/smiley.gif\" align=\"middle\">", $besked);
-----------------------------

Så  mit problem er når man skriver sit indlæg og laver en ny sætning via enter, så sker det ikke når det skal skrives ind på den side det fremkommer på!

Hvordan får jeg den til dette? - folk skal jo ikke sidde og skrive <br> ind når de gerne vil have et linjeskift?

skal lige siges at inde i databasen har den en datatype der hedder "text" hvis det skulle gøre nogen forskel?
Avatar billede detox Nybegynder
24. februar 2005 - 09:34 #1
Du skal bruge: nl2br() når siden vises:
http://dk2.php.net/manual/en/function.nl2br.php
Avatar billede greew Nybegynder
24. februar 2005 - 09:34 #2
Når folk skriver tekst og trykker på enter, får man det skjulte tegn \n, som står for ny linje.
Denne kan du ændre til et <br> ved at bruge nl2br-funktionen - se her: http://dk.php.net/manual/en/function.nl2br.php

Håber det kan hjælpe!
Avatar billede nc85 Nybegynder
24. februar 2005 - 09:40 #3
$besked = str_replace("\n", "<br>", $besked);  ?
Avatar billede greew Nybegynder
24. februar 2005 - 09:42 #4
Det er en mulighed, ja! Men nl2br() er lavet til det samme, så du slipper for at bruge str_replace().

Men jo, resultatet er det samme.
Avatar billede detox Nybegynder
24. februar 2005 - 09:42 #5
Fx:

echo nl2br($besked);
Avatar billede nc85 Nybegynder
24. februar 2005 - 09:50 #6
hmm, $besked = str_replace("\n", "<br>", $besked);
virker ikke...

når jeg skriver det ud er koden: echo "$row[besked]\n";
Avatar billede detox Nybegynder
24. februar 2005 - 09:52 #7
Det skal så være:

echo nl2br($row['besked']);
Avatar billede nc85 Nybegynder
24. februar 2005 - 09:56 #8
Det var korrekt...
Avatar billede detox Nybegynder
24. februar 2005 - 09:57 #9
Sagen er at forskellige styresystemer kan bruge forskellige "newline" tegn, fx "\n" og "\r". Det tager nl2br() højde for.
Avatar billede greew Nybegynder
24. februar 2005 - 09:58 #10
detox: ahh.. den information vidste jeg så ikke lige :-)
Avatar billede nc85 Nybegynder
24. februar 2005 - 10:05 #11
hmm ok.. skal man nok lige huske det en anden gang så :) - anyway, ligger du et svar
Avatar billede detox Nybegynder
24. februar 2005 - 10:09 #12
Værsgo'
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