2017-12-24 6 views
-2

이것은 코드입니다. 실수 한 부분을 알지 못합니다. 작은 따옴표로 시도했습니다. 나는 그것을 시도했지만 모든 항목이 한 줄로 나타납니다.개행이 PHP에서 작동하지 않습니다

$output_line=$item."\n"; 
fwrite($myfile,$output_line); 
+0

을 유효의 TXT 파일에 대한 자사의 브라우저가 HTML을 기대합니다. OS에 따라 "\ r \ n"이 필요할 수도 있습니다 – rtfm

+0

"\ n"대신 PHP_EOL을 테스트로 사용하는 것은 어떻습니까? 그런 식으로 시스템 자체가 사용하는 모든 반환되어야합니다? –

+0

몇 개의 아이템이 있습니까? $ item이란 무엇입니까? 문자열의 항목 하나 또는 배열의 여러 항목입니까? – Andreas

답변

0

사용 PHP_EOL 대신 \n.

$output_line=$item . PHP_EOL ; 
+0

OP에서 $ item이 배열이라고 말하면 문자열 변환 오류로 배열을 만들어야합니다. – Andreas

+0

그래, 그게 사실이야. 하지만 OP 대답 https://stackoverflow.com/a/47958569/7594961 작동하고있다 –

0

다른 운영 체제에 따라 다를 수 있습니다

$data = 'some data' . PHP_EOL . 'this should be on new line'; 
$fp = fopen('my_file', 'a'); 
fwrite($fp, $data); 

// 파일 출력

some data 
this should be on new line 
+0

감사합니다 그 일을하지만 왜 작동하지 않는 \ n 궁금해. –

+0

당신을 진심으로 환영합니다. 자세한 내용은 다음을 참조하십시오. https://stackoverflow.com/questions/4975411/when-do-i-use-php-eol-instead-of-n-and-vice-versa-ajax-jquery-client-problem –

+0

흠, 내가 필요한 대답입니다. –

0

줄 바꿈 표현 \r\n 또는 \n을 생산하고 사용 PHP_EOL. PHP에는 현재 플랫폼에 대한 올바른 'End Of Line'심볼을 반환하는 PHP_EOL이라는 사전 정의 된 상수가 있습니다. PHP 5.0.2부터 사용 가능합니다.

따라서, 귀하의 코드는 다음과 같이해야한다 : 각 항목 사이에 "텍스트"를 추가 내파를 사용할 필요가

$output_line=$item.PHP_EOL; 
fwrite($myfile,$output_line); 
+0

OP가 $ item이 배열이라고 말하면 문자열 변환 오류 배열을 작성해야합니다 – Andreas

+0

코드 형식을 편집하기 위해 편집 할 수 없습니다 ... – Andreas

0

.
Implode는 배열을 가져 와서 각 항목 사이에 문자열을 추가하고 모든 문자열로 만듭니다.

$output_line=implode(" PHP_EOL", $item); 
fwrite($myfile,$output_line); 

이 지금 할 것 :

Item1 PHP_EOL 
Item2 PHP_EOL 
Item3 PHP_EOL 
관련 문제