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

내 코드 :

$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

감사.



답변

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

설명서를 참조하십시오 .

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


답변

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


답변

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


답변

다음을 사용할 수도 있습니다 file_put_contents().

file_put_contents('ids.txt', implode("\n", $gemList) . "\n", FILE_APPEND);


답변