>  기사  >  백엔드 개발  >  php에서 생성된 html 메타태그와 링크태그는 body 태그에 있고 상단에 빈줄이 있습니다.

php에서 생성된 html 메타태그와 링크태그는 body 태그에 있고 상단에 빈줄이 있습니다.

高洛峰
高洛峰원래의
2017-01-21 10:03:53993검색

1. PHP에서 smarty 템플릿을 사용하여 생성된 html에는 브라우저 상단에 빈 줄이 있습니다.

2. firedebug를 사용하여 body 태그에 있는지 확인하세요. 🎜>
Native wmap에서는 잘 돌아가는데, 원격 서버로 보내는 서비스가 IASP라서 위와 같은 버그가 뜹니다.

소스 파일을 살펴보니 내용이 똑같네요. 그런데 저장하면 인코딩 문제가 발생합니다.

온라인에서 검색해 보니 utf-8 BOM 문제인 것으로 나타났습니다.

해결책: 사용하세요. 참조된 템플릿 파일(예: 머리글, 바닥글 및 기타 파일 포함)인 스마트 템플릿 파일을 편집하려면 UltraEdit32를 사용하여 BOM 없이 모두 utf-8 파일로 저장하세요.

기타 보충 지침:

페이지는 UTF8로 인코딩되었으며 헤더와 테일은 문서를 포함하는 템플릿 방식을 사용합니다. 따라서 헤더와 테일은 각 측면에 약 10px 정도의 추가 빈 줄이 있습니다.
따라서 템플릿이 포함된 방법을 사용하고 여러 개의 utf8 문서를 포함하고 ultraedit로 저장해야 하는 경우 다른 이름으로 저장 기능을 선택하고 BOM 형식 없이 utf8로 저장하세요.

또한, 중국어 페이지의 html head 태그에 title 태그가 있는 경우 bd38580e66b584259355ebda85ddd9f1 빈 페이지가 나타납니다.

따라서 utf8 페이지는 표준 순서

<meta http-equiv=”Content-type” Content=”text/html; Charset=UTF-8″ /> 
<meta http-equiv=”Content-language” Content=”zh-CN” /> 
<meta name=”robots” Content=”index,follow” /> 
<meta name=”keywords” Content=”" /> 
<meta name=”desCription” Content=”" /> 
<meta name=”rating” Content=”general” /> 
<meta name=”author” Content=”" /> 
<meta name=”Copyright” Content=”" /> 
<meta name=”generator” Content=”" /> 
<title></title>

BOM 헤더: xEFxBBxBF를 사용해야 합니다. PHP 스크립트 4와 5는 여전히 BOM을 무시하므로 구문 분석 전에 직접 출력됩니다.

w3.org 표준 FAQ에 이 문제에 대한 특별한 설명이 있습니다:


www.w3.org/International/questions/qa-utf8-bom

자세한 내용은 다음과 같습니다.

UCS 인코딩에는 "ZERO WIDTH NO-break SPACE"라는 문자가 있으며 인코딩은 FEFF입니다. FFFE는 UCS에 존재하지 않는 문자이므로 실제 전송에는 나타나지 않아야 한다. UCS 사양에서는 바이트 스트림을 전송하기 전에 "ZERO WIDTH NO-break SPACE" 문자를 전송할 것을 권장합니다. 이런 식으로 수신기가 FEFF를 수신하면 바이트 스트림이 Big-Endian임을 나타내고, FFFE를 수신하면 바이트 스트림이 Little-Endian임을 나타냅니다. 따라서 "ZERO WIDTH NO-break SPACE" 문자를 BOM이라고도 합니다.

UTF-8에서는 바이트 순서를 나타내기 위해 BOM이 필요하지 않지만 BOM을 사용하여 인코딩 방법을 나타낼 수 있습니다. 문자 "ZERO WIDTH NO-break SPACE"의 UTF-8 인코딩은 EF BB BF입니다. 따라서 수신기가 EF BB BF로 시작하는 바이트 스트림을 수신하면 UTF-8로 인코딩되었음을 알 수 있습니다.

Windows는 BOM을 사용하여 텍스트 문서의 인코딩 방법을 표시합니다. Systam: WindowsXP Professional, 기본 문자 집합: 중국어

1) 메모장: BOM 없이 utf를 자동으로 식별할 수 있음 8 인코딩 형식 문서, 하지만 문서 저장 시 BOM 추가 여부를 제어할 수 없습니다. 문서를 저장하면 BOM이 균일하게 추가됩니다.

2) editplus: BOM이 없는 UTF-8 인코딩 형식의 문서는 자동으로 인식할 수 없습니다. 문서 저장 시 UTF-8 형식을 선택하면 문서 헤더에 BOM 헤더가 기록되지 않습니다.

3) UltraEdit: 문자 인코딩을 위한 가장 강력한 기능으로, BOM이 있거나 없는 UTF-8 문서를 자동으로 식별할 수 있습니다(구성 가능). 저장 시 구성을 통해 BOM을 추가할지 여부를 선택할 수 있습니다.
(특별한 주의) 예, 새로 생성된 문서를 저장할 때 utf-8 no bom 형식으로 저장하도록 선택해야 합니다.

나중에 Notepad ++도 utf-8 bom을 더 잘 지원한다는 것을 알았습니다. , 모든 사람에게 사용을 권장합니다.

PHP에서 생성된 더 많은 HTML 메타 및 링크 태그는 본문 태그에 있습니다. 관련 기사는 PHP 중국어 웹사이트를 참고하세요.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.