PHP에서 파일에 새 줄 쓰기 (줄 바꿈)


109

내 코드 :

$i = 0;
$file = fopen('ids.txt', 'w');
foreach ($gemList as $gem)
{
    fwrite($file, $gem->getAttribute('id') . '\n');
    $gemIDs[$i] = $gem->getAttribute('id');
    $i++;
}
fclose($file);

어떤 이유로 \n문자열로 작성 되므로 파일은 다음과 같습니다.

40119\n40122\n40120\n42155\n36925\n45881\n42145\n45880

Google'ing에서 사용하는 나에게 말한다 \r\n,하지만 \r내가하고 싶은 것을 할 것 같지 않습니다 캐리지 리턴입니다. 파일이 다음과 같이 보이기를 원합니다.

40119
40122
40120
42155
36925
45881
42145
45880

감사.

답변:


278

교체 '\n'와 함께 "\n". 를 사용할 때 이스케이프 시퀀스가 ​​인식되지 않습니다 '.

설명서를 참조하십시오 .

줄 끝을 작성하는 방법에 대한 질문은 여기에 있는 참고를 참조 하십시오 . 기본적으로 운영 체제마다 줄 끝의 규칙이 다릅니다. Windows는 "\ r \ n"을 사용하고 유닉스 기반 운영 체제는 "\ n"을 사용합니다. 하나의 규칙을 고수하고 ( "\ n"을 선택했습니다) 바이너리 모드에서 파일을 열어야합니다 ( fopen"w"가 아니라 "wb"를 가져와야합니다).


내 줄 끝 amd에 대해 "\ r \ n"을 "\ n"으로 변경했습니다. 감사.
csonuryilmaz 2015

지금 내 코드를 모두 사용 "하고 '그리고 그것은 나를 귀찮게
씨 PizzaGuy

실제로 ""를 사용할 때는 \ n이 강조 표시되지만 ''를 사용할 때는 강조 표시되지 않습니다. (즉, 편집기가 구문 강조를 사용하는 경우 내 것은 Sublime Text 3입니다.)
DarkVeneno

68

PHP_EOL출력을 사용 \r\n하거나 \nOS에 따라 다릅니다.


4
문제가 발생하지 말고 \n특정 OS에서 파일을 열지 않으려면 항상 사용 하십시오. 그렇다면 PHP를 실행하는 OS가 아닌 해당 OS의 개행 조합을 사용하십시오 ( PHP_EOL).
Alix Axel 2012 년

60

PHP_EOL은 PHP 4.3.10 및 PHP 5.0.2부터 PHP에서 미리 정의 된 상수입니다. 수동 게시를 참조하십시오 .

이를 사용하면 크로스 플랫폼 개발에 대한 추가 코딩을 절약 할 수 있습니다.

IE.

$data = 'some data'.PHP_EOL;
$fp = fopen('somefile', 'a');
fwrite($fp, $data);

이것을 두 번 반복하면 'somefile'에서 볼 수 있습니다.

some data
some data

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.