トップページ > ホームページ作成 > ファイルをインクルード3
PHPを利用したホームページの作成方法です。「ファイルをインクルード3(PHPで文字コード変換)」では、文字コードを変換して外部ファイルをインクルードする方法をお教えします。ある程度ページが増えてしまってから、HTMLの文字コードを変えたくなった時に使えます。
外部ファイルの文字コードを入替えたい場合
外部ファイルをインクルードするとき、HTMLの文字コードと違う文字コードのファイルを読み込むと、文字化けしてしまいます。
通常何も考えなければ、殆どのテキストエディターは「Shift_Jis」でファイルを保存します。ところが、色々勉強が進んできてAiaxやXLMを使いたくなった時は、
文字化けするブラウザがあることから「utf-8」が推奨されています。最初から、HTMLを「utf-8」で作っていれば良いのですが、ある程度ページ数が増えて、しかも殆どのページで「Shift_jis」の共通ファイルをインクルードしている時は、「utf-8」のHTML用に同じ内容で「utf-8」の共通ファイルを作るのもちょっと共通化の概念から外れてしまいます。
そこで、このページでは、「Shift_Jis」の外部ファイルを、文字コードを「utf-8」に変換して読み込むことで、「Shift_Jis」でも、「utf-8」のHTMLで使えるようにします。
外部ファイルの文字コードを入替えたい場合
文字コードを変換して外部ファイルインクルードに、サンプルがあります。
このサンプルでは、「Shift_Jis」で書かれた「test_sjis.txt」の内容をインクルードしています。文字コードを変換してインクルードするPHPのリストは、下記の通りです。
複数箇所でファイルをインクルードする場合は、「get_include_contents()関数」の宣言は、1回だけにしてください。
<?php // $file_nameファイルの文字コードをSJISからUTF-8に変換しインクルード
$string = get_include_contents( "../common/navi.txt" ); // 読み込みファイル
// SJIS("ASCII,JIS,UTF-8,EUC-JP,SJIS")からUTF-8に変換
$string = mb_convert_encoding($string, "UTF-8", "auto");
echo $string ; // 置き換えたテキストを表示
// get_include_contents()関数
function get_include_contents($filename) {
if (is_file($filename)) {
ob_start();
include $filename;
$contents = ob_get_contents();
ob_end_clean();
return $contents;
}
return false;
  }
?>
「utf-8」のHTMLの場合、次のように文字コードの宣言をしないとIE6では何も表示されない場合があります。その場合、「表示」→「エンード」→「UTF-8」を選択すれば表示されますが、トラブルの元ですので、<head>と</head>の間に、忘れずに宣言しましょう。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
「Javaスクリプト」や「スタイルシート」の文字コード
「Javaスクリプト」や「スタイルシート」を外部ファイルにしている場合は、HTMLと文字コードが異なっても動作するようですが、HTLMと文字コードが違う場合は次のように文字コードを指定して読み込めます。
<link href="スタイルシートファイル名.css" rel="stylesheet" type="text/css" charset="shift-JIS">
<script type="text/javascript" src="Javaスクリプトファイル名.js" charset="shift-JIS"></script>
それでも誤作動する場合は、HTMLの文法が間違っている可能性があります。
Amazon.co.jpアソシエイト:PHP&プログラミング
:%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%20php :php2_ :3