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

metaHTML のセクションでタグを使用する必要がheadあります。これにより、使用されている文字エンコーディングがブラウザーに伝えられます。

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

ところで、新しいプロジェクトを開始する場合は、UTF-8 エンコーディングの使用を検討してください。1 つのエンコーディングですべての Unicode 文字 (全世界のすべての文字) を許可するため、多くの場合、ISO-* よりも適切な選択です。

于 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 に答える