2010-05-18 2 views
1

정확한 코드는 여기에 있습니다.에코 "<! <"가 "<! >"을 반환하는 이유는 무엇입니까?

<?php 
echo "<! <"; 
?> 

그리고 이것은 반환되는 문자열입니다.

<! > 

왜 마지막 문자가 변경됩니까?

+2

나를위한 것이 아닙니다. 어떻게 이걸 달리고 있니? –

+2

어디서 볼 수 있듯이 ...? 원시 산출물? 브라우저에서? – deceze

+0

이 오류를 재현하지 못했습니다. –

답변

8

OP에서 설명한 스크립트와 동일한 스크립트를 만들었습니다.

Firefox v3.6.3에서는 브라우저에 <! <이 표시됩니다.

Google 크롬 v4.1에서 브라우저 디스플레이는 공백으로이지만 소스는 <! >입니다.

Internet Explorer 8에서는 브라우저에 <! <이 표시됩니다.

Opera v10.53에서 브라우저에는 <이 표시되고 소스에는 <! <이 표시됩니다.

어려움을 겪고있는 브라우저 또는 브라우저 윈도우에 이러한 문자를 표시하려는 이유에 대해 확실하지 않습니다.

문자를 표시하려면 문자 그대로 htmlentities()과 같은 문자를 사용하여 브라우저에서 표시 할 HTML 문자로 변환해야합니다.

+1

+1 htmlentities – knittl

+0

나는 잘못된 소스를 보여주는 유일한 브라우저 인 Google Chrome 소스를보고있었습니다. 따라서 올바른 소스를 실제로 표시하지 않는 Chrome 문제 일 수 있습니다. 원본 콘텐츠가 HTML 소스에 표시되는 CDATA 섹션이 포함 된 태그로 RSS 피드를 만들 때 원래 발생했습니다. <콘텐츠 : 암호화>content

]]>"; ?> Chrome 문제인 경우 문제가 해결 된 것 같습니다. – mkeblx

1

"Content-Type : text/plain"헤더를 지정하면 Chrome에서 정상적으로 렌더링해야합니다.

"text/html"헤더를 보내거나 Content-Type 헤더를 보내지 않을 수도 있습니다. 따라서 브라우저는 콘텐츠의 종류를 추측해야합니다.