php如何生成utf-8的html文件??注意不是简单地加<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ,而是生成文件后用记事本打开另存为后编码自动为utf-8 。
解决方案 »
- 怎样删除phpmyadmin数据库中的密码?
- 新手关于dreamweaver的问题。
- 老问题刚解决,新问题来了,来看看我的Php用的哪个数据库?
- php操作sqlite sql语句执行两次的问题
- 请问PHP有没有生成图饼的代码,跪求啊!
- radio分组的问题!在线等!
- Undefined offset 是什么问题啊?急
- 寻求一个算法,是围绕一个已知数组作数据处理,请帮忙!
- 在LINUX下,为PHP增加GD,重新编译时出现的问题。
- 在php中使用sql server 存储过程,可是返回值或者输出参数不知怎么接收,望各位大虾告知,感激不尽!!!
- form批量提交
- zend studio新建服务器的问题????
" \xEF\xBB\xBF "把HTML文件头部空格解决了,不会产生页面空行,或者排版问题
在菜单栏window->preferences,在弹出的对话框中:General->Workspace,在右边的Text file encoding下
点击other下拉框,里面选择utf-8,然后点击ok。这样在生成的php文件中都是utf-8的编码。
<?php
/******************8PHP静态类*************/
class Shtml
{
var $Templet;
var $DataSource;
var $Dir; var $fileName;
var $mod;
var $handle; function Shtml($fileName = "")
{
$this->fileName = $fileName;
$this->mod = "wb";
$this->handle = false; $this->Templet = "";
$this->DataSource = array();
$this->Dir = "";
} // 绑定数据源,参数为一数组
function BindData($arr)
{
$this->DataSource = $arr;
} // 设置文件存放路径
function SetDir($dir)
{
$this->Dir = $dir;
}
function SetFileName($fileName)
{
return $this->fileName = $fileName;
} function GetMod()
{
return $this->mod;
}
function SetMod($mod)
{
return $this->mod = $mod;
}
function Open()
{
if (substr($this->fileName, 0, 1) == "/")
$this->fileName = $_SERVER['DOCUMENT_ROOT'] . $this->fileName;
if ($this->handle = fopen($this->fileName, $this->mod))
return $this->handle;
else
return false;
}
function Close()
{
return fclose($this->handle);
}
function Write($content)
{
return fwrite($this->handle, $content);
}
function MkDir($pathname)
{
$currentPath = "";
str_replace("\\", "/", $pathname);
$pathArr = split("/", $pathname);
if ($pathArr[0] == "") { //使用绝对路径
$currentPath = $_SERVER['DOCUMENT_ROOT'];
} else {
$currentPath = $_SERVER['DOCUMENT_ROOT'] . dirname($_SERVER['PHP_SELF']);
}
for ($i = 0; $i < count($pathArr); $i++) {
if ($pathArr[$i] == "")
continue;
else
if (is_dir($currentPath . " / " . $pathArr[$i]))
$currentPath = $currentPath . " / " . $pathArr[$i];
else
mkdir($currentPath = $currentPath . " / " . $pathArr[$i]);
}
} // 生成静态文件
function Create()
{
$tmp = $this->Templet;
foreach ($this->DataSource as $key => $value) {
$tmp = str_replace(" < FIELD_" . $key . " > ", $value, $tmp);
}
$this->MkDir(dirname($this->fileName));
$this->Open();
$this->Write($tmp);
$this->Close();
}
}function CreateShtml() {
ob_start("callback_CteateShtml");
}function callback_CteateShtml($buffer) {
$page = intval(@$_REQUEST["page"]);
$shtml = new Shtml();
$shtml->SetFileName($_SERVER['DOCUMENT_ROOT'] . dirname($_SERVER['PHP_SELF']) . "/" . basename($_SERVER['PHP_SELF'], ".php") . ($page == 0 ? "" : "_" . strval($page)) . ".html");
$shtml->Templet = $buffer;
$shtml->Create();
return $buffer;
}
?>用这个类生成静态文件
$html = "
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
<title>用户登陆</title>
</head>
<body>
<form name=\"UserLogin\" action=\"chklogin.php\" method=\"post\" enctype=\"application/x-www-form-urlencoded\" >
用户名:<input name=\"username\" type=\"text\" />
密码:<input name=\"passowrd\" type=\"password\" />
<button type=\"submit\">登陆</button>
</form>
</body>
</html>";$file = fopen("test.html","w");
fwrite ($file,"\xEF\xBB\xBF".iconv('gbk','utf-8',$html));
fclose($file);
?>
把fwrite ($file,"\xEF\xBB\xBF".iconv('gbk','utf-8',$html))
改为
fwrite ($file,"\xEF\xBB\xBF".iconv('utf-8','utf-8',$html))
即可解决中文乱码。
这里就是传说中的脱裤子放屁