我创建了一个脚本,它从我的数据库中获取名称,并为每个名称为它们创建一个.php文件。但是我想用(php)标题填充这个文件,因为如果没有它,ëé和ú等字母就不能正确显示。
到目前为止,我已经得到了这个:
<?php
// ...
while($row = mysql_fetch_array($res)){
$file = "Map/" . $row['name'] . ".php";
$fh = fopen("$file", "w+");
if($fh==false){
die("unable to create file");
}
echo "$file created <br/>";
$stringData = "<center><h1>". $row['name'] . "</h1></center>\n
No text available just yet.";
fwrite($fh, $stringData);
}
fclose($fh);
?>
我现在要做的是在中心标记之前放置以下代码行:
<?php header('Content-Type: text/html; charset=ISO-8859-15'); ?>
当我使用ajax请求(使用JQuery)从.php文件中检索存储的文本时,标题必须位于文件中才能显示这些特殊字母。因此我的问题是:我如何将这行代码放在每个文件中,而不是php只执行它? (或者,如果这可以更容易,怎么做?)
脚本运行后,我希望有一个如下所示的文件:
<?php header('Content-Type: text/html; charset=ISO-8859-15'); ?>
<center><h1>Chocolate</h1></center>
No text available yet.
答案 0 :(得分:2)
您必须在HTML的meta
部分使用head
标记,它告诉浏览器使用了哪种字符编码:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15"/>
顺便说一句,如果您要开始一个新项目,请考虑使用UTF-8编码。它通常比ISO- *更好,因为它允许所有Unicode字符(全世界的所有字符)都有一个编码。
答案 1 :(得分:1)
尝试在打开文件后立即添加:
fwrite($fh, "<?php header('Content-Type: text/html; charset=ISO-8859-15'); ?>\n");
PHP足够聪明,知道?>
在字符串文字中出现时不是最终的PHP标记。
答案 2 :(得分:0)
请询问您的真实问题;不是你认为可能是解决方案。据我所知,问题应该是这样的:“如何通过PHP设置特定的文件编码?”
如果您的输出是HTML文件,请使用Glibnes建议的META标记。</ p>
如果书面文件是纯文本,您应该将文本转换为UTF-8并将fwrite()
转换为文件。
答案 3 :(得分:0)
使用以下stringData代替上述
$stringData = '<?php header(\'Content-Type: text/html; charset=ISO-8859-15\'); ?><center><h1>'. $row['name'] . "</h1></center>\n
No text available just yet.";
正如您在.php文件中编写的那样。它应该执行头函数。