2011-08-10 6 views
4

(PHP 5.3.6)PHP는 원인을 포함 원하지 않는 줄 바꿈

단순히이 텍스트를 포함하는 PHP 파일이 - 아니 PHP 태그 어디서나 어떤 뒤에 줄 바꿈 또는 여분의 공백이 없습니다 :

<div style="border:1px solid green">abc</div> 

을 이제 다음과 같이 다른 PHP 파일에서 이것을 포함합니다. (아무 것도없는 공백없이) :

<div style="border:1px solid red"><?php include "abc.php" ?></div> 
<br /> 
<div style="border:1px solid red"><div style="border:1px solid green">abc</div></div> 

다음 결과를 얻었습니다. 두 번째 방법은 단지 직접 제공된 콘텐츠를 사용

참고. 이것들은 둘 다 낮은 쪽과 같아야하지만, include가 볼 수 있듯이, 포함 된 파일의 내용 앞에 삽입되는 몇 가지 종류의 개행이 발생합니다.

페이지의이 부분은 크롬의 요소 관리자에 표시됩니다 enter image description here

,있을 것 같습니다 : 나는 (크롬의 소스보기를 통해) 출력 소스를 확인할 때이 가시의 것이 없기 때문에 나는 '이상한'를 말한다

enter image description here

그것은 단순히 빈 문자열로 나타납니다,하지만 왜 빈 문자열은 줄 바꿈을 야기하고 이유는 처음부터있을 것입니다 : 뭔가가 있지만 정확히 내가 말할 수 없다 신비. include 문 끝 부분에 세미콜론을 추가해도 아무런 차이가 없습니다. 나에게 null 바이트 또는 13 (CR) 일 수 있지만 여전히 HTML 줄 바꿈을 일으키지 않아야합니다.

이 원치 않는 줄 바꿈을 제거하는 방법을 알고있는 사람이 있습니까?

답변

14

포함 된 abc.php의 인코딩을 확인하십시오. - BOM (Byte Order Mark)이 있습니까? 그렇다면 제거하십시오. 좋은 코드 편집기를 사용하면 저장 대화 상자에서 파일 인코딩을 변경할 수 있습니다. 이는 그 원인 일 수 있습니다.

+3

mmmm .... php 잘 알아. 감사! – iforce2d

+0

정말 고마워요 !! 그 BOM 것은 매우 악합니다 ... –

0

원시 출력을 확인하기 위해 Chrome 속성에서의 신뢰는 트리 형식이므로 좋은 생각이 아닙니다. 소스를 사용하여이 약간 더 좋습니다.

대부분 include()과 관련이 없습니다. 첫 번째 단계는 포함 된 파일을 16 진수 편집기로 열고 이 실제로이 비어 있는지 확인하는 것입니다. Jens Roland가 지적했듯이, 예를 들어 BOM을 포함 할 수 있습니다. 대부분의 텍스트 편집기에서는이를 숨 깁니다.

또한이 코드 원시 abc.php 파일을 생성 할 수 있으며, 이에 대해 코드를 테스트 : 나는이 같은 문제가 있었다

file_put_contents('abc.php', 'abc'); 
+1

예, BOM이 문제였습니다. 기록을 위해 필자는 메모장 + +를 사용하여 "BOM없이 UTF-8로 인코딩"으로 저장했습니다. – iforce2d

0

. 편집기에서 문제를 발견했습니다. 메모장이나 텍스트 편집기로 포함 된 파일을 편집하고 저장하십시오. 변경 사항이 표시됩니다.