Avatar billede monmike Nybegynder
17. oktober 2003 - 11:45 Der er 19 kommentarer og
1 løsning

problemer med texarea og linieskift

Halløjsa

Er ved at lave noget login halløj og har så brug for lidt hjælp.
Jeg indlæser en fil i et textarea og kan der ændre brugere og deres password.
De står således:
navn password
navn password

når de så bliver gemt i en txt fil så bliver de skrevet på den måde, men jeg skal have dem skrevet på en linie, hvor der er den lille firkant (går udfra den betyder ny linie) efter hver linie. dvs navn password(firkant)navn password

lyder det som volapyk eller er det muligt.

Problemet er at når der skal læses fra den igen, så kan den ikke finde ud af linieskift'ne. det skal være med firkanten.
Avatar billede kohaar Nybegynder
17. oktober 2003 - 11:53 #1
Nu er jeg ikke helt sikker, men mener den lille firkant er et linjeskift symbol som f.eks. notepad ikke kan finde ud af. Muligvis \r. Prøv at indsætte \r\n - Prøv at indsætte en af dem efter hver linje, eller muligvis begge 2
Avatar billede monmike Nybegynder
17. oktober 2003 - 12:10 #2
nope så tilføjer den automatisk endnu en \
Avatar billede kohaar Nybegynder
17. oktober 2003 - 12:21 #3
Lige et skud i tågen mere. Trøv at køre teksten igennem den her før du sender den: $text= str_replace('\r', '', $text);
Avatar billede monmike Nybegynder
17. oktober 2003 - 12:31 #4
Nej, den gemmer stadigvæk på flere linier. Men har lige set i login scriptet at den laver en explode til et array. ser sådan ud:
$buffer = fgets($fp, 4096);
$tmp = explode(" ",$buffer);
if(!empty($tmp[0]) AND !empty($tmp[1]))

Kan man ændre det, så den kan læse fra flere linier i stedet for en.
Avatar billede exp Juniormester
17. oktober 2003 - 12:35 #5
hvorfor bruger du ikke bare | istedet? Og så exploder når den skal indlæses i textareaet?
Avatar billede monmike Nybegynder
17. oktober 2003 - 12:37 #6
det lyder som en god ide, men hvordan for jeg den til at gemme med | i stedet for ny linie
Avatar billede kohaar Nybegynder
17. oktober 2003 - 12:43 #7
ja. Du kan bruge fread i stedet for fgets. Så bliver du i stedet for nød til at finde en måde at skille linjerne af. Tror muligvis jeg har lavet noget du kan bruge.. 2 sec...
Avatar billede kohaar Nybegynder
17. oktober 2003 - 12:45 #8
$txt = preg_replace("/(\015\012)|(\015)|(\012)/","|",$txt);

Dette skulle være en ret sikker måde, at ændre alle \n \r og \r\n til pipes
Avatar billede monmike Nybegynder
17. oktober 2003 - 12:53 #9
nu gemmer den med pipes. men når jeg så skal have det vist i textarea hvordan fjerner man den så. Jeg ved ikke helt hvordan jeg skal indsætte explode kommandoen i dette:

<p align="center"><textarea rows="3" name="gem" cols="20"><?php readFile("../brugere.dat");?></textarea><br>
Avatar billede kohaar Nybegynder
17. oktober 2003 - 12:59 #10
noget lign:
$filetext = file("../bruger.dat");
$filetext = str_replace("|", "\n", $filetext[0]);
Avatar billede exp Juniormester
17. oktober 2003 - 12:59 #11
$str = explode("|", $str)
Avatar billede kohaar Nybegynder
17. oktober 2003 - 13:01 #12
Vil nu mene vi er ved at være ude på et sidespor, men hvis det virker, så ok...
Avatar billede kohaar Nybegynder
17. oktober 2003 - 13:03 #13
Nu kan jeg se at der er flere der er ved at være med... Vil det ikke virke som han har det fra starten, hvis han indsætter:

$txt = preg_replace("/(\015\012)|(\015)|(\012)/","\n",$txt);

før han skriver det til filen?
Avatar billede exp Juniormester
17. oktober 2003 - 13:11 #14
umiddelbart jo... men det kommer an på serveren, gør det ikke? altså om det skal være \n, \r eller \r\n
Avatar billede kohaar Nybegynder
17. oktober 2003 - 13:25 #15
Jo, men fgets bruger jo \n for at finde new lines, så serveren bør ikke betyde noget?
Avatar billede monmike Nybegynder
17. oktober 2003 - 13:30 #16
nu virker det. Der skulle "bare" indsættes $txt = preg_replace("/(\015\012)|(\015)|(\012)/","\n",$txt);
før jeg gemte det. tusind tak.
Hvordan deler vi lige point
Avatar billede monmike Nybegynder
17. oktober 2003 - 13:30 #17
smid nogle svar
Avatar billede monmike Nybegynder
21. oktober 2003 - 18:19 #18
vil gerne have lukket spørgsmålet - så læg et svar og der bliver lukket.
Avatar billede kohaar Nybegynder
21. oktober 2003 - 18:31 #19
Du kan selv oprette et svar og give dig selv point hvis du ikke kan komme til at lukke spørgsmålet. Ellers kommer der lige et svar fra mig hvis du gerne vil af med de points
Avatar billede monmike Nybegynder
21. oktober 2003 - 18:50 #20
Det ved jeg godt, men du havde jo fortjent dem.
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