Avatar billede muddi Praktikant
16. november 2001 - 14:22 Der er 16 kommentarer og
1 løsning

Fjerne \\n inden streng smides i mySQL

Hvordan fjerner jeg linieskift fra indholdet af min streng inden den gemmes i databasen? Der må ikke være nogen linieskift overhovedet, da det skal bruges i et javascript efterfølgende.

Som det ser ud nu, kommer scriptet til at se således ud, når PHP spytter det ud:

function insertHilsen() {
      var hilsenFra = \"

Med venlig hilsen
Morten Henrichsen\";
      doc_content = document.multimailer.mail_besked.value + hilsenFra;
      document.multimailer.mail_besked.value = doc_content;
      document.multimailer.mail_besked.focus();
}

Det virker selvfølgelig ikke, fordi variablen hilsenFra deles på flere linier...

Outputtet skal kunne laves tilbage til det oprindelige format, så det kan vises rigtigt i mit textarea bagefter!

Håber at I forstår det...
Avatar billede dmcn Praktikant
16. november 2001 - 14:23 #1
$var = str_replace(\"\\n\",\"\",$var);
Avatar billede dmcn Praktikant
16. november 2001 - 14:24 #2
Avatar billede muddi Praktikant
16. november 2001 - 14:30 #3
Jamen, så kan jeg jo ikke få dem tilbage igen...

De skal jo vises på siden, og så kommer det til at stå:

Med venlig hilsen Morten Henrichsen

istedet for:

Med venlig hilsen
Morten Henrichsen

Jeg tænkte mere i retning af noget med:
$var = str_replace(\"\\n\",\"\\\\n\",$var);
Da man jo godt kan skrive:

var hilsenFra = \"\\n\\nMed venlig hilsen\\nMorten Henrichsen\";
Avatar billede dmcn Praktikant
16. november 2001 - 14:33 #4
OK - nu er jeg *slet* ikke med. Hvis jeg har forstået dig rigtigt, så ville jeg i stedet smide en kode jeg selv finder på, eks. ibskibskalle, ind i stedet for \\n. Når jeg så hiver ud vil jeg igen replace ibskibskalle med \\n og det samme når det skal i textarea\'et.
Hvis det ikke er det du vil, så må du lige forklare, så vi jordiske tåber kan lege med. ;)
Avatar billede wizprod.com Nybegynder
16. november 2001 - 14:37 #5
Hvorfor vil du fjerne dem? Det kan jeg sgu ikke se det logiske i!
Avatar billede dmcn Praktikant
16. november 2001 - 14:39 #6
wizprut : Fordi PHP, når den udskriver \\n laver det om til linebreaks. Han skal bruge det i JS, og der kan et linebreak ikke erstatte et \\n.
Avatar billede jakoba Nybegynder
16. november 2001 - 14:39 #7
Så skal du ikke gøre det idet du gemmer strengen, men der hvor du bruger den.
det su skriver som skal være kode er
  echo  str_replace(\"\\n\",\"\",$mysqlfelt);
og det du skriver der skal stå i dit textarea er
  echo  $mysqlfelt
Avatar billede dmcn Praktikant
16. november 2001 - 14:41 #8
jakoba : Så har han jo stadig problemet med at PHP udspytter det med linebreaks i hans JS.

muddi : Havde du egentlig prøvet med \\\\n?
Avatar billede jakoba Nybegynder
16. november 2001 - 14:43 #9
Men skulle vi så ikke erstatte de linieskift med et skrevet linieskift?
  echo  str_replace(\"\\n\",\"\\\\n\",$mysqlfelt);

så koden bliver:
      var hilsenFra = \"\\n\\nMed venlig hilsen\\nMorten Henrichsen\";

mvh JakobA


Avatar billede spectre Nybegynder
16. november 2001 - 14:43 #10
KAN man ikke lave noget lignende:

str_replace(\"\\10\\13\",\"\",$mysqlfelt);
str_replace(\"\\#10\\#13\",\"\",$mysqlfelt);

altså: skift ascii karakterer 13 og 10 ud med \"\"
Avatar billede muddi Praktikant
16. november 2001 - 14:44 #11
Jeg gjorde som du sagde, og det virkede heller ikke. Jeg havde også tænkt på det, men nope!
Nu har jeg fået den til at skrive således i min html-kode:

var hilsenFra = \"
\\n\\nMed venlig hilsen
\\nMorten Henrichsen\";

Den sætter altså \\n\'er ind, men der er stadig linieskift...! Det er sgu underligt!
Avatar billede muddi Praktikant
16. november 2001 - 14:51 #12
Nu har jeg prøvet det hele og lidt til, og det virker ikke...

Jeg dropper det. Jeg må gøre det på en anden måde. Det ville ellers være fedt nok!

Tak fordi i prøvede!
Avatar billede dmcn Praktikant
16. november 2001 - 14:55 #13
Husk at lukke. Læg et svar selv og acceptér det. :)
Avatar billede martin1000ben Nybegynder
16. november 2001 - 17:16 #14
Har jeg ikk ret i af din html kode skal blive såen her

<br><br>Med venlig hilsen<br>Morten Henrichsen

??

Avatar billede muddi Praktikant
03. februar 2002 - 23:40 #15
Nej Martin, min kode skulle være skulle også være uden <br> ... Jeg lukker nu!
Avatar billede dejbjerg Nybegynder
30. januar 2006 - 09:30 #16
$output = preg_replace("/(\r\n|\n|\r)/", "", $output);
Avatar billede muddi Praktikant
01. februar 2006 - 16:46 #17
Hehe... bedre sent end aldrig ;)

/Muddi
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