문제

n과 r의 차이점은 무엇입니까 (OS와 관련이 있다는 것을 알고 있습니다). 크로스 플랫폼이 작동하는 라인 브레이크를 반영하는 가장 좋은 방법은 무엇입니까?

편집하다: Jarod에 대한 응답으로 .txt 로그 파일에서 라인 브레이크를 반향하기 위해 Ths를 사용 하겠지만, HTML Makup을 페이지에 반향하는 것과 같은 것들에 대해 앞으로 사용할 것이라고 확신합니다.

도움이 되었습니까?

해결책

  • \n Linux/Unix 라인 브레이크입니다.
  • \r 클래식 한 Mac OS (비 OS X) 라인 브레이크입니다. Mac OS X는 위의 UNIX를 사용합니다 \n.
  • \r\n Windows 라인 브레이크입니다.

나는 보통 그냥 사용합니다 \n Linux 시스템과 대부분의 Windows 앱에서는 어쨌든 확인합니다.

다른 팁

사용 PHP_EOL Constant는 PHP 스크립트가 실행중인 운영 체제의 올바른 라인 브레이크로 자동으로 설정됩니다.

이 상수는 PHP 5.0.2 이후 선언됩니다.

<?php
    echo "Line 1" . PHP_EOL . "Line 2";
?>

거꾸로 호환성 :

if (!defined('PHP_EOL')) {
    switch (strtoupper(substr(PHP_OS, 0, 3))) {
        // Windows
        case 'WIN':
            define('PHP_EOL', "\r\n");
            break;

        // Mac
        case 'DAR':
            define('PHP_EOL', "\r");
            break;

        // Unix
        default:
            define('PHP_EOL', "\n");
    }
}

Jarod의 답변에는 다양한 OS에서 r n의 올바른 사용법이 포함되어 있습니다. 여기에 몇 가지 역사가 있습니다.

  • r 또는 소수점 코드 13을 가진 ASCII 문자는 "Carriage Return"의 이름을 따서 명명되었습니다.
  • n 또는 소수점 코드 10을 가진 ASCII 문자는 "Newline"또는 "line feed"후 LF입니다.

용어 "캐리지 리턴"및 "라인 피드"는 모니터와 키보드가있는 터미널 대신 텔레 타입을 사용한 시점으로 거슬러 올라갑니다. Teletypes 또는 Typewriters와 관련하여 "Carriage Return"은 커서를 움직이고 첫 번째 텍스트 열로 돌아가는 것을 의미하는 반면 "선 피드"는 롤러를 회전하여 다음 줄로 이동하는 것을 의미했습니다. 당시에는 구별이 의미가있었습니다. 오늘날 텍스트 줄의 끝을 나타내는 조합 n, r, r n은 완전히 임의적입니다.

PHP4에서 PHP_EOL에 대한 거꾸로 호환성이 필요하지 않습니다.

상수 PHP_EOL 가용성에 대한 Moore의 진술을 수정해야합니다. "... PHP 5.0.2 이후 선언됩니다."

아니요, PHP 4.3.10 이후에있었습니다. 여전히 그보다 더 적은 것을 달리는 사람은 어쨌든 비즈에 있지 않아야합니다. 오늘부터 아무도 PHP 5보다 적은 것을 사용해서는 안됩니다!

PHP 매뉴얼에서 : "PHP_EOL이 플랫폼의 올바른 '끝'기호. PHP 4.3.10 및 PHP 5.0.2 이후 사용 가능".

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top