programing

\n 대신 PHP_EOL을 사용하는 경우와 그 반대의 경우는 언제입니까?Ajax/Jquery 클라이언트 문제

css3 2023. 8. 13. 09:53

\n 대신 PHP_EOL을 사용하는 경우와 그 반대의 경우는 언제입니까?Ajax/Jquery 클라이언트 문제

저는 주어진 문자열을 줄 바꿈으로 분할하는 php 파서를 가지고 있습니다.

$lines = explode(PHP_EOL,$content);

서버 측에서 작업할 때는 파서가 잘 작동합니다.그러나 jquery의 $.post 메서드를 사용하여 게시물을 통해 내용을 전달하면 줄 바꿈이 인식되지 않는 문제가 발생합니다.그래서 거의 한 시간 동안의 테스트와 두통 끝에 PHP_EOL을 "\n"으로 변경하기로 결정했고 작동했습니다.

$lines = 폭발(\n", $content);

이제 작동합니다!젠장, 시간을 너무 많이 잃었어요!나중에 시간을 절약할 수 있도록 PHP_EOL과 "\n"을 제대로 사용할 때 누가 설명해 줄 수 있습니까?친절한 답변 감사합니다 ;)

일반적으로 플랫폼별 출력에는 상수를 사용해야 합니다.

  • 대부분 파일 출력용입니다.
  • 실로파기능이변미다니습었환되제은을 변환합니다.\n←→\r\nfopen(…, "wb")모드

파일 입력을 위해 선호해야 합니다.\n하만 대부분의 네트워크 프로토콜(대분네프(HTTP)를 사용하도록 되어 .\r\n그것은 보장되지 않습니다.

  • 때문에 이 가장 좋습니다.\n 선택적인 " 을합니다거제옵션다"를 제거합니다.\r수동으로:

    $lines = array_map("rtrim", explode("\n", $content));
    

    또는 EOL 처리를 PHP 또는 auto_detect_line_endings에 맡기려면 이 기능을 바로 사용하십시오.

  • 보다 강력하고 효율적인 대안은 와 regexp를 사용하는 것입니다.

    $lines = preg_split("/\R/", $content);
    

    자리 표시자는 +의 모든 조합을 감지합니다. 따라서 가장 안전하고 클래식 MacOS에서도 작동할 수 있습니다.≤ 9텍스트 파일(실용에서 흔히 볼 수 있음)

    필수 미세 최적화 참고 사항:
    비용이 루프 및 후 빠른 경우가 . regex는 PHP에서 사용됩니다.

플랫폼의 모호성 때문에 피해야 몇 가지 고전적인 예가 있습니다.

  • HTTP over와 같은 네트워크 프로토콜 페이로드를 수동으로 생성합니다.
  • 및 MIME 구성(사실, 어쨌든 당신은 지루하게 해서는 안 됩니다.)
  • 파일 출력(Unix지속적으로 작성하려는 경우)\n환경에 상관없이 새로운 라인.

그래서 리터럴을 사용합니다."\r\n"파일에 쓰지 않고 네트워크 바꿈이 예상되는 특정 컨텍스트에 대한 데이터를 준비할 때의 조합입니다.

PHP_EOL로그 파일과 같은 출력을 쓸 때 사용해야 합니다.

플랫폼에 맞는 줄 바꿈을 생성합니다.

PHP_EOL는 서버 플랫폼에서 사용하는 줄 바꿈 문자를 고정하는 상수입니다.Windows의 경우,\r\n*nix에서, 그것은\nWindows 서버가 있는 것 같습니다.

만약 당신이 *nix 서버에 있었다면, 그 변경은 그것을 고치지 않았을 것이다, 왜냐하면 그것은\n클라이언트(즉, 브라우저)에 데이터를 보내는 경우 다음을 사용해야 합니다.\r\n줄 바꿈이 인식되는지 확인합니다.

PHP_EOLPHP가 실행 중인 서버에서 사용하는 줄 바꿈입니다.사용자가 제출한 콘텐츠에는 사용하는 형식에 관계없이 줄 끝이 있을 수 있습니다.하지만, 새로운 라인에서 폭발하는 대신, 단지 사용.file()기능, 그것은 정확히 당신이 원하는 것을 합니다.

PHP_EOL을 사용하는 IMHO가 좋습니다.

줄 바꿈의 PHP와 JS 처리 간의 일관성을 보장하기 위해 PHP_EOL을 사용하여 JS에서 줄 바꿈 변수를 정의할 수 있습니다.

var eol = '<?php echo str_replace(array("\n","\r"),array('\\n','\\r'),PHP_EOL) ?>';

이후, 사용eol제출된 텍스트 영역 내용 분할용

언급URL : https://stackoverflow.com/questions/4975411/when-do-i-use-php-eol-instead-of-n-and-vice-versa-ajax-jquery-client-problem