Я работаю над упрощенным веб-сайтом, использующим PHP, язык, которым я давно не пользовался, особенно когда он работает в системе Windows из WebMatrix. В последнее время я портировал пару веб-сайтов из ASP.NET (Umbraco) на PHP на базовый шаблонный класс, написанный на PHP, и до сих пор дела шли довольно хорошо, пока некоторые символы юникода не начали появляться в моем источнике до появления DOCTYPE. , Средство проверки исходного кода Mozilla не показывает их, но при публикации в Блокноте отображаются два поля / символа Юникода.
Я посмотрел на проблему в Firebug и, похоже, считает, что весь JavaScript работает внутри тега body, хотя быстрый взгляд на исходный код показывает, что это не так.
Тот же исходный код прекрасно работает при запуске в ASP.NET из WebMatrix, но этот пересмотренный веб-сайт, использующий приведенный ниже код в 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("@$var@", $content, $this->template);
}
function publish() {
eval("?>".$this->template."<?");
}
}
?>
Как показано, страница дизайна используется для каждой страницы с обязательными полями, перечисленными с символом at (например, <title>@title@</title>
).
Я вполне уверен, что CSS и HTML не виноваты, так как я использую то, что в основном является тем же самым кодом, на других сайтах без каких-либо проблем.
РЕДАКТИРОВАТЬ: Проблема обнаружена, но при этом показано, что редактирование файлов PHP в новом редакторе WebMatrix от Microsoft будет постоянно приводить к появлению метки порядка байтов при сохранении файла PHP. Как уже упоминалось, Notepad ++ чрезвычайно эффективен для решения этой проблемы, и если у вас возникла та же проблема, откройте все необходимые файлы и перейдите в раздел «Кодирование» в верхнем меню и нажмите «Преобразовать в UTF-8 без спецификации» . После сохранения проблема должна исчезнуть.
Я считаю, что это допустимая ошибка в инструменте WebMatrix, и я был бы более чем рад сообщить об ошибке, если бы Интернет моей компании не был ограничен, когда дело доходит до Windows Live. Если вам кажется, что он опубликован как ошибка, или сделайте это сами, то, пожалуйста, прокомментируйте этот пост, поскольку даже с его недостатками инструмент WebMatrix является фантастическим небольшим редактором для ASP.NET Razor и PHP.