내 코드 :
$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
하거나 \n
OS에 따라 다릅니다.
답변
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);