저는 WebMatrix의 Windows 시스템에서 실행되는 PHP를 오랫동안 사용하지 않은 언어 인 PHP를 사용하여 단순한 웹 사이트에서 작업하고 있습니다. 최근에 나는 ASP.NET (Umbraco)에서 PHP로 웹 사이트를 PHP로 작성된 기본 템플릿 클래스로 포팅 해왔다. 그리고 지금까지는 DOCTYPE 전에 유니 코드 문자가 내 소스에 나타나기까지 꽤 잘 진행되었다. . Mozilla 소스 검사기는이를 표시하지 않지만 메모장에 게시 할 때 두 개의 유니 코드 상자/문자가 표시됩니다.맨 위 페이지의 유니 코드 문자로 인해 WebMatrix에 간격이 생깁니다.
파이어 버그의 문제점을 살펴 봤지만 소스 코드를 간략하게 살펴보면 모든 JavaScript가 body 태그 내에서 실행되고 있다고 생각됩니다.
WebMatrix에서 ASP.NET을 실행할 때 동일한 소스 코드가 완벽하게 작동하지만 아래 PHP 코드를 사용하여이 수정 된 웹 사이트가 제대로 작동하지 않습니다. 다음은 일반적인 페이지 파일부터 시작하여 사용중인 코드입니다.
<?php
include "./template.class.php";
$content = "<p>Test.</p>";
$template = new Template;
$template->load("./design.php");
$template->replace("title", "Title");
$template->replace("ContentTitle", "Test");
$template->replace("PageContent", $content);
$template->publish();
?>
다음은 내가 사용하는 템플릿 클래스입니다. 도시 된 바와 같이
<?php
class Template {
var $template;
function load($filepath) {
$this->template = file_get_contents($filepath);
}
function replace($var, $content) {
$this->template = str_replace("@[email protected]", $content, $this->template);
}
function publish() {
eval("?>".$this->template."<?");
}
}
?>
설계 페이지는 상기 심볼 (예컨대 <title>@[email protected]</title>
) 나열 필요한 필드와, 각 페이지에 대해 사용된다.
저는 CSS와 HTML이 다른 웹 사이트에서 거의 동일한 코드를 사용하고 있기 때문에 아무런 문제가없는 것처럼 비난하지 않는다고 확신합니다.
편집 : 문제가 발견되었지만, 그렇게는 지속적으로 PHP 파일을 저장할 때 바이트 순서 표시를 표시하게됩니다 마이크로 소프트의 새로운 WebMatrix 편집기에서 해당 편집 PHP 파일을 표시합니다. 위에서 언급했듯이 Notepad ++는이 문제를 해결하는 데 매우 효율적입니다. 동일한 문제가 있으면 필요한 모든 파일을 열고 최상위 메뉴의 인코딩으로 이동하여 "BOM없이 UTF-8로 변환"을 클릭하십시오. 일단 저장되면 문제가 사라집니다.
저는 이것이 WebMatrix 도구의 유효한 버그라고 생각합니다. Windows Live와 관련하여 회사 인터넷에 제한이 없다면 버그를 제출해 주시면 기쁘게 생각합니다. 버그가 게시 된 것을 보거나 직접 해보는 경우,이 결함에 대해서도 WebMatrix 도구는 ASP.NET Razor 및 PHP를위한 환상적인 편집기입니다.
예 : 이 질문 : http://stackoverflow.com/questions/1814258/bom-in-a-php-page-auto-generated-by-wordpress –
나는 그것이 완벽하게 합리적이기 때문에 이것이 WebMatrix 버그라고 생각하지 않는다. BOM이있는 UTF-8 파일을 시작합니다. UTF-8로 인코딩 된 파일을 읽을 때 BOM을 올바르게 해석하지 않는 버그가 있습니다. – Alohci
PHP 스크립트는 유니 코드 문자가 아닌 바이트 기반입니다. PHP 나 다른 바이트 기반 도구는 파일 시작시 임의의 상위 바이트를 처리 할 수 없습니다. UTF-8에는 바이트 순서 문제가없고 BOM이 필요하지 않습니다. 문자 U + FEFF는 UTF-8 파일의 시작 부분에서 의미가 없으므로 어쨌든 호환성에 대한 해로운 영향과 별도로 포함되어서는 안됩니다. 불행하게도 Microsoft는 가짜 BOM을 좋아하고 그만하도록 설득 할 수 없습니다. – bobince