使用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