Carriage Return \\r (og trim)

Tags:    php

Jeg er blevet træt af at wordwrap() ikke fungerer som jeg vil have den til, så derfor har jeg kodet dette:

Fold kodeboks ind/udKode 


- for at dele en stump kode op i linjer, hvor linjer der er på mere end 64 tegn får indsat et line feed. Det går jo vældig godt - men så er det jeg kommer til at tænke på hvad carriage return har at sige? Dem tager min kode jo ikke hensyn til..
Formuleret anderledes: hvad gør \\r ?

Liige en ting mere. Hvordan undgår jeg at trim fjerner tabulator tegn? trim($l, " ") ser ikke ud til at virke.

10UP/svar



4 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Linux bruger kun line feed: \\n

Mac OS bruger vist kun carriage return: \\r

og windows bruger så begge: \\r\\n

Som jeg ser det er carriage den der | man ser når man skriver, carriage return flytter den så tilbage til position 0, eller starten af linjen.

ved ikke om det er helt korrekt



Nej... Og hvis det skulle være så skidt at jeg tager fejl, den forskel der ville være, er så minimal at det ikke er noget du kan mærke.
Tænk bare på hvor meget der forgår i f.eks. Smarty. Det kan man så også mærke, men det er også ualmindeligt så meget gøgl der forgår. :)



i stedet for trim burde du kunne bruge:

$str = preg_replace("/[\\r\\n]+|\\s+/m",' ',$str);



Daniel
Tak, det vil så faktisk sige at hvis en Mac bruger indtaster noget i mit textarea så virker min kode ikke? Altså den finder ingen linieskift og skriver det hele ud i en lang linje?
Jeg har desværre ingen mac at teste det på...

Gnu
Tak, men er det ikke noget langsomt at køre et regulært udtryk for hver linie i lad os sige et script på 20-50000 linjer? Det er forresten bare for at undgå at den indrykkede linje bliver rykket et tegn for langt. Jeg overvejer at teste om første tegn er et space og så bare fjerne det..



t