如何删除多个UTF-8 BOM序列

使用PHP5(cgi)从文件系统输出模板文件,并出现吐出原始HTML的问题。

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

//Remove UTF8 Bom

function remove_utf8_bom($text)

{

$bom = pack('H*','EFBBBF');

$text = preg_replace("/^$bom/", '', $text);

return $text;

}

以上是 如何删除多个UTF-8 BOM序列 的全部内容, 来源链接: utcz.com/qa/398680.html

回到顶部