在字符串中发送php标记

时间:2012-07-19 09:50:19

标签: php string file-io

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

答案 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文件中编写的那样。它应该执行头函数。