사전 역사의 안개 속에서 Windows Folk, Mac Folk 및 Unix 포크는 어떤 문자가 줄의 끝을 나타내야하는지에 동의 할 수 없었습니다. 클래식 Mac OS에서는 캐리지 리턴 (\ r)이었습니다. 유닉스에서는 줄 바꿈 (\ n)이었다. 창문에서는 캐리지 리턴 다음에 개행 문자 (\ r \ n)를 붙였습니다.
이전 타자기에서 두 가지을 사용하여 새로운 줄로 머리를 가져 가야했습니다. 캐리지 리턴 (큰 팔 물건)은 종이의 왼쪽 (또는 오른쪽, 샬롬!)으로 다시 타자기 헤드를 움직일 것입니다. 그러나 머리는 여전히 같은 선상에 있습니다. 용지 자체를 한 줄 위로 올리려면 두 번째 메커니즘 (줄 바꿈 또는 줄 바꿈)을 사용해야합니다.
ASCII 표준의 이유 중 하나는 (텔레그래프, 텔레타이프 등을 통해) 나중에 인쇄 될 데이터를 인코딩하여 표준에서 두 문자를 모두 갖게하는 것이 었습니다. 컴퓨터를 사용하는 것이 주된 목적이었던 파일에 대한 표준을 결정할 시간이 왔을 때 아무도 동의 할 수 없었습니다. Windows 표준 (\ r \ n)은 가장 문자 적으로 의미가 있지만 Unix 및 Classic Mac 표준 (Unix의 경우 \ n, Classic Mac의 경우 \ n)은 초당 비트로 저장됩니다.
이것은 수십 년 동안 혼란을 야기했으며 앞으로도 계속 혼란을 야기 할 것입니다. Windows 환경에서 Unix 도구를 사용할 때 특히 그렇습니다. 이 도구들은 \ n을 줄 끝으로 가정합니다. 또한 PHP 소스 파일이 유닉스 스타일의 줄 끝으로 인코딩 될 수도 있습니다. 즉, 여러 줄로 구분 된 문자열이 실제로 \ n 줄 바꿈으로 나뉘며 프로그램이 제대로 작동하고 있음을 의미합니다.
대부분의 최신 텍스트 편집기는 텍스트 파일이 어떻게 인코딩되는지 알아 내고 작성자가 "의도 한대로"줄을 표시합니다. 메모장은 그런 식으로 작동하지 않으며 문자 그대로 텍스트 파일에 복종합니다. 에 관계없이 모두의
, 다음과 같은 등록의 예는 창
$stringData = preg_replace('/[\n\r]{1,2}$/',"\r\n",$stringData);
다른 방법에 대한 표준 무엇에 라인 엔딩을 정상화해야한다, 당신은 캐리지 리턴/줄 바꿈으로 종료하기 위해 문자열을 만들 수
$string = "line 1\r\nline 2";
$string = "line 1\r\n".
"line 2\r\n";
두 줄 바꿈 시퀀스를 모두 지원하는 편집기를 사용하십시오. 메모장은 빤다. – Gumbo