※ ChatGPTを利用し、要約された質問です(原文:UTF8のPHPにSJISのPHPを組みこむ方法?)
UTF8のPHPにSJISのPHPを組み込む方法
このQ&Aのポイント
UTF-8で動作するPHPファイルにSJISで動作するPHPを組み込む方法を教えてください。
質問者は、UTF-8で動作しているPHPファイルとSJISで動作しているPHPファイルを組み合わせたいと考えています。
しかし、組み込むと文字化けが発生してしまいます。どのようにすれば文字化けを解消できるでしょうか?
UTF8のPHPにSJISのPHPを組みこむ方法?
charset=UTF-8で動作するPHPファイルがあります。
******************
UTF-8で動作するPHP
******************
<?php
・・・・・・・・
header("Content-type:text/html;charset=UTF-8");
?>
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; UTF-8">
<title><?=$API_NAME?></title>
</head>
・・・・・・・・・・
・・・・・・・・・・
</html>
のような形です。
一方、SJISで動作する下記のPHPがあります。
このS_JIS PHPを上記のUTF-8PHPの中の</head>と</html>の間に組み込みたいと思います。
下記のPHPは、data.csvからファイルの中身を表示させるPHPですが、そのまま放り込むと
文字化けしてしまいます。
(下記のPHP単体だと正しく表示されます。charset=UTF-8下で文字化けします)
data.csvの文字コードをUTF-8にする。LF にするなど試してみましたが文字化けしたままでした。
また、#include <string.h>の下に
mb_convert_encoding($string, 'utf8', 'sjis');
を入れてみましたが文字化けは直りませんでした。
お手数ですが下記のPHPをUTF8上で正しく表示させる方法が分かりましたらご教授願います。
******************
SJISで動作するPHP
******************
<?
#include <string.h>
// CSV ファイルを読み込み、$data配列に格納
$handle = fopen("data.csv", "r");
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
if ( strcmp( $row[0] , '110' ) == 0 ) {
$data[] = array( 'shop'=>$row[0] ,'priceA'=>$row[1], 'priceB'=>$row[2], 'place'=>$row[3] );
}
}
fclose($handle);
// 列方向の配列を得る
foreach ($data as $key => $row) {
$shop[$key] = $row['shop'];
$priceA[$key] = $row['priceA'];
$priceB[$key] = $row['priceB'];
$place[$key] = $row['place'];
}
// 結果の表示
for( $i=0 ; $i<count( $data ) ; $i++ ) {
print "$shop[$i] $priceA[$i] $priceB[$i] $place[$i]<br>\n";
}
?>
お礼
ご回答ありがとうございます。 試行錯誤していたため返答が遅くなりましたことをお詫び致します。 ご提案頂いた方法ではだめでした。 ご提案をもとに、さらにいろいろ試したのですが、やはり文字化けは直りません。 ご回答いただけましたことを御礼申し上げます。