\n 대신 PHP_EOL을 사용하는 경우와 그 반대의 경우는 언제입니까?Ajax/Jquery 클라이언트 문제
저는 주어진 문자열을 줄 바꿈으로 분할하는 php 파서를 가지고 있습니다.
$lines = explode(PHP_EOL,$content);
서버 측에서 작업할 때는 파서가 잘 작동합니다.그러나 jquery의 $.post 메서드를 사용하여 게시물을 통해 내용을 전달하면 줄 바꿈이 인식되지 않는 문제가 발생합니다.그래서 거의 한 시간 동안의 테스트와 두통 끝에 PHP_EOL을 "\n"으로 변경하기로 결정했고 작동했습니다.
$lines = 폭발(\n", $content);
이제 작동합니다!젠장, 시간을 너무 많이 잃었어요!나중에 시간을 절약할 수 있도록 PHP_EOL과 "\n"을 제대로 사용할 때 누가 설명해 줄 수 있습니까?친절한 답변 감사합니다 ;)
일반적으로 플랫폼별 출력에는 상수를 사용해야 합니다.
- 대부분 파일 출력용입니다.
- 실로파기능이변미다니습었환되제은을 변환합니다.
\n
←→\r\n
한fopen(…, "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에서, 그것은\n
Windows 서버가 있는 것 같습니다.
만약 당신이 *nix 서버에 있었다면, 그 변경은 그것을 고치지 않았을 것이다, 왜냐하면 그것은\n
클라이언트(즉, 브라우저)에 데이터를 보내는 경우 다음을 사용해야 합니다.\r\n
줄 바꿈이 인식되는지 확인합니다.
PHP_EOL
PHP가 실행 중인 서버에서 사용하는 줄 바꿈입니다.사용자가 제출한 콘텐츠에는 사용하는 형식에 관계없이 줄 끝이 있을 수 있습니다.하지만, 새로운 라인에서 폭발하는 대신, 단지 사용.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
'programing' 카테고리의 다른 글
Swagger API 응답에서 개체 목록 설정 (0) | 2023.08.13 |
---|---|
은행 또는 금융 회사가 "핵심" 시스템에 대해 다른 RDBMS보다 Oracle을 선호하는 이유는 무엇입니까? (0) | 2023.08.13 |
시작할 때 Spring Cloud Config Server가 PropertySource를 찾을 수 없음 (0) | 2023.08.13 |
Eclipse용 PHP Mess 디텍터 (0) | 2023.08.13 |
application.yml Spring Cloud Gateway에서 사용자 지정 필터를 지정하는 방법 (0) | 2023.08.13 |