使用PHP5(cgi)从文件系统中输出模板文件,并遇到吐出原始HTML的问题。如何在“<!DOCTYPE>”之前删除多个UTF-8 BOM序列?
private function fetch($name) {
$path = $this->j->config['template_path'] . $name . '.html';
if (!file_exists($path)) {
dbgerror('Could not find the template "' . $name . '" in ' . $path);
}
$f = fopen($path, 'r');
$t = fread($f, filesize($path));
fclose($f);
if (substr($t, 0, 3) == b'\xef\xbb\xbf') {
$t = substr($t, 3);
}
return $t;
}
即使我已经添加了BOM修正,但我仍然遇到Firefox接受它的问题。你可以在这里看到一个活的副本:http://ircb.in/jisti/(和模板文件我扔在http://ircb.in/jisti/home.html如果你想看看)
任何想法如何解决这个问题? o_o
UTF8文件不应该有一个BOM,如果你的编辑把那些在,应该有省略这些配置中,如果你的编辑器将不允许你不放入BOM中,替换您的编辑器。 – 2012-04-24 02:11:14
是的。我使用n ++,如果使用n ++,我尝试不使用BOM – sheppardzw 2012-04-28 02:17:00