원본 : http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&wr_id=308501

----------------------------------------------------------------------------------------------

공백 제거 관련 문제


txt 파일을 읽어서 txt 파일로 저장시 


변수+변수로 txt파일로 저장할때 줄바꿈 현상이 발생했다.


phpschool에 관련 사항이 있어서 넣어 놓는다.


----------------------------------------------------------------------------------------------


옛날에 만든 소스가 이상 작동을 해서 보니까.. 
엔터 제거 함수가 

$tmp=str_replace("\n","",$text); 

이렇게 되있더군요. 

그 밑에 

$tmp=str_replace("\r","",$text); 

을 추가 하니까 고쳐 졌습니다. 
좀 더 실험을 해보니 
실제로 엔터는 \n\r 두개가 연결된 형태로 저장 되어 있더군요. 
그런데 재미있는것은. 

\n  또는 \r 둘중에 하나만 없애도 엔터는 그대로 남아있더란 말이죠. 
결국 \n \r 각각 남아 있어도 엔터 한개고. 
\r\n 이렇게 붙어있어도 엔터 한개 더군요. (엔터 두개가 되지 않는점이 신기..) 

근데 \n\r 게 순서를 뒤집으면 엔터 두개가 되더군요.... -__-;; 

사실 원하는것은 엔터 단위로 잘라서 (엔터는 제외 하고) array 에 차례로 넣는 부분을 만들던중이였는데. 

왠지 혼란스러워 졌습니다. 
지금 있는 자료가 \r\n 이라고 이것으로 구분 하면.. 옛날엔 됬던것으로 보이는 \n 단독은 통하지 않을테고..  말이죠.. 
nl2br 과 trim 을 섞어서 복잡하게 짜야 하는건지.. 

누가 개념과 조언을 쎼워주시면 삼가 감사드리겠습니다. :D 

그럼 이만..


----------------------------------------------------------------------------------------------



정규식을 이용한 CRLF 제거 
$text = preg_replace('/\r\n|\r|\n/','',$text); 

문자열 처리 함수를 이용한 CRLF 제거 
$text = str_replace(array("\r\n","\r","\n"),'',$text); 
또는 
$text = strtr($text,array("\r\n"=>'',"\r"=>'',"\n"=>''));