Avatar billede bhn.314 Nybegynder
17. marts 2004 - 15:57 Der er 11 kommentarer og
3 løsninger

Fjerne \n fra DB-data

Nu har jeg brugt en evighed på følgende problem:

Jeg vil fjerne newline aka \n fra de data jeg henter fra min PostgreSQL-DB. JEg har prøvet alt fra:

$theCleanString=preg_replace("/\\n/", " ", $value);

til

$theCleanString=preg_replace("/\n/", " ", $value);

til

$theCleanString=preg_replace("\n", " ", $value);

til

$theCleanString=preg_replace("\\n", " ", $value);


MEN \n bliver stadig fortolket i html'en, dvs. det ikke er fjernet. (Det skal lige siges at $value kommer fra et textarea der gemmes i DB'en)
Avatar billede muddi Praktikant
17. marts 2004 - 16:02 #1
Jeg har engang haft et spm der gik på nogenlunde det samme
http://www.eksperten.dk/spm/134706
og der var ikke nogen løsning!
Avatar billede muddi Praktikant
17. marts 2004 - 16:05 #2
Det her kan måske virke:
(PHP_OS == "WINNT") ? ($read = str_replace("\r\n", "", $in)) : ($read = str_replace("\n", "", $in));
Taget fra
http://php3.de/manual/en/ref.readline.php
Avatar billede bhn.314 Nybegynder
17. marts 2004 - 16:08 #3
Nope, doesn't work............
Avatar billede muddi Praktikant
17. marts 2004 - 16:13 #4
Så kunne du lave alle "\n"til br-tags med nl2nr() og dernæst strippe alle forekomster af "<br />".
Avatar billede muddi Praktikant
17. marts 2004 - 16:18 #5
Brug f.eks. denne kode til at fjerne alle <br />

$string = ereg_replace('\<br \/\>', "",$string);
Avatar billede muddi Praktikant
17. marts 2004 - 16:19 #6
På den måde kan du stadig få dine egne br-tags ført igennem, hvis du skriver dem som <br> og ikke <br />
Avatar billede muddi Praktikant
17. marts 2004 - 16:24 #7
mit første forslag er forker. brug dette:
$string = ereg_replace('(<br />)', "", $string);
Avatar billede squashguy Nybegynder
17. marts 2004 - 16:28 #8
har du prøvet?

$theCleanString=preg_replace("/\n\r/", " ", $value);
Avatar billede squashguy Nybegynder
17. marts 2004 - 16:29 #9
glemte lige or..

$theCleanString=preg_replace("/\n|\r/", " ", $value);
Avatar billede sukos Juniormester
17. marts 2004 - 16:50 #10
Bruger:

function br($var) {
return ereg_replace("(\r\n|\n\r|\n|\r)+", "<br>\n", $var);
}

til altid kun at lave et linieskift, fra en mysql db
Avatar billede sukos Juniormester
17. marts 2004 - 16:51 #11
Forresten, mener det var olebole og tipsen som engang hjalp mig! :O)
Avatar billede danisher Nybegynder
17. marts 2004 - 22:55 #12
Hejsa

Jeg vil foreslå du kigger på kommandoen TRIM på postGreSql's dokumentation:
http://www.postgresql.org/docs/7.4/static/functions-string.html

trim([leading | trailing | both] [characters] from string)

"SELECT tekstfelt TRIM(both '\n' from tekstfelt) as tekst FROM tabel WHERE ..."

Lad mig høre om det kan bruges? Ellers kig på nogen af de andre funktioner, da jeg mener det nok er mere optimalt at lade databasen gøre arbejdet for dig...

Mvh
Avatar billede muddi Praktikant
01. april 2004 - 16:13 #13
bhn.314 >> Hvad finder du ud af? Har du fået det til at virke?
Avatar billede bhn.314 Nybegynder
02. april 2004 - 09:06 #14
>>>Til Muddi: You made it work. Tusind tak. Og undskyld ventetiden.
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