約 50 の質問と 70,000 のエントリを使用して実施した大規模な調査があるため、手動で編集したり、ピボット テーブルを使用したりするだけではうまくいきません。データをデータベースにアップロードする必要があります。fgcsv() を使用している間、日本語の文字を正確に読み取ることができません。ロケールを UTF-8 と SJIS に設定してみましたが、どちらも日本語のすべての文字を読みたいとは思われません。これはバグかもしれないとどこかで読みましたが、わかりません..
データは次のようになります。
Q-004 必須回答 あなたは、以下のどちらにお住まいですか? S/A
1 北海道 Hokkaido
2 青森県 Aomori
3 岩手県 Iwate
4 宮城県 Miyagi
5 秋田県 Akita
これが私のコードです:
setlocale(LC_ALL, 'ja_JP.SJIS');
$fp = fopen($_POST["filename"],'r') or die("can't open file");
$csv_line = fgetcsv($fp,1024);
$query = "";
$count = 0;
$question = false;
while($csv_line = fgetcsv($fp,1024)) {
if (!$question && strpos($csv_line[0],"Q-")!== false)
{
echo "Found a question: ".$csv_line[2] . "<br>";
$question = true;
}
else if($question && strlen($csv_line[0])==0)
{
echo "<hr>";
$question = false;
}
else if($question && intval($csv_line[0])>0)
{
echo $csv_line[0]. " has value ". $csv_line[2]." - ".$csv_line[3]. "<br>";
}
$count++;
}
echo "$count records read successfully";
fclose($fp) or die("can't close file");
結果は次のとおりです。
Found a question: A以下のどちらにお住まいですか?
1 has value k海道 - Hokkaido
2 has value X県 - Aomori
3 has value - Iwate
4 has value {城県 - Miyagi
5 has value H田県 - Akita