0

我创建了一个脚本,它从我的数据库中获取名称,并为每个名称创建一个 .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.
4

4 回答 4

2

您必须meta在 HTML 部分使用标签head,它告诉浏览器使用哪种字符编码:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15"/>

顺便说一句,如果您正在开始一个新项目,请考虑使用 UTF-8 编码。它通常是比 ISO-* 更好的选择,因为它允许使用一种编码的所有 Unicode 字符(全世界的所有字符)。

于 2012-07-19T09:53:29.223 回答
1

在打开文件后立即尝试添加:

fwrite($fh, "<?php header('Content-Type: text/html; charset=ISO-8859-15'); ?>\n");

PHP 足够聪明,?>当它出现在字符串文字中时,它知道它不是 PHP 结束标记。

于 2012-07-19T09:56:56.433 回答
0

请询问您的真实问题;不是关于你认为可能是解决方案的问题。据我了解,这个问题应该读到一些东西:“如何通过 PHP 设置特定的文件编码?”

如果您的输出是 HTML 文件,请按照 Glibnes 的建议使用 META 标记。

如果写入的文件是纯文本,则应将文本转换为 UTF-8 并将fwrite()其转换为文件。

于 2012-07-19T09:59:20.503 回答
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 文件中编写它时。它应该执行头函数。

于 2012-07-19T10:03:17.597 回答