示されたphpコードが全てなら。
$d = $log3;
の次の行の
}
に対する{
がないので、たぶん余計。
文法エラーを検出できる開発環境(IDE)やエディタを使ってね。
何もわからなければVisual Studio Codeが無難で優秀なので。
再現のために、まるっとソースを 339330.php に貼り付けた:
php
1<?php
2
3$file_name = "log339330.txt"; /*読込ファイルの指定*/
4$log0 = file( $file_name ); /*ファイルを全て配列に入れる*/
5
6for($i = 0 ; $i < count($log0); $i++){
7$log1[$i] = explode(",",$log0[$i]);
8$log3[] = $i;
9}
10
11shuffle($log3);
12$d = $log3;
13}
14
15if (isset($_POST['time'])){
16$e += $_POST['e'];
17$d = $_POST['d'];
18$d = $_POST['d'];
19$c1 = $_POST['c'];
20$a = $_POST['a'];
21$b = $_POST['b'];
22
23//結果の判定
24if($a == $b){
25$d += $c1;
26$result = "正解!";
27}else{
28$result = "不正解・・・。";
29}
30}
31
32$count++;
33
34$title = $log1[$d[$e]][0];
35
36$question = array(); //この変数は配列ですよという宣言
37
38?>
log339330.txt の中身は質問文に合わせてこうした:
卵は英語で,egg,選択肢12,選択肢13,選択肢14,選択肢5,選択肢6,説明,10
犬は英語で,dog,選択肢22,選択肢23,選択肢24,選択肢5,選択肢6,説明,20
猫は英語で,cat,選択肢32,選択肢33,選択肢34,選択肢5,選択肢6,説明,30
机は英語で,desk,選択肢42,選択肢43,選択肢44,選択肢5,選択肢6,説明,10
日本は英語で,Japan,選択肢52,選択肢53,選択肢54,選択肢5,選択肢6,説明,20
英語は英語で,English,選択肢62,選択肢63,選択肢64,選択肢5,選択肢6,説明,30
これで再現するはずだな?
Parse error: syntax error, unexpected '}', expecting end of file in (ナイショ)\339330.php on line 13
先の回答で示したとおり、$d = $log3;
の次に来る}
が引っかかってるので削除する。
再度実行。
Notice: Undefined variable: count in (ナイショ)\339330.php on line 32
Notice: Undefined variable: e in (ナイショ)\339330.php on line 34
Notice: Undefined index: in (ナイショ)\339330.php on line 34
Notice: Undefined index: in (ナイショ)\339330.php on line 34
Notice: Trying to access array offset on value of type null in (ナイショ)\339330.php on line 34
まぁ、何をやりたいのかコードから全く伝わってこないくらい、いろいろオカシイので、
日本語でいいので、どういう表示にしたいのか、要求仕様を質問文中に丁寧にまとめてほしい。
コードからじゃわからん。
ドキュメントがなくてもそこそこ意味の伝わるコードの書き方を少し説明する。
変数名がずさんすぎるのはアウト。
なんのデータを保持しているのかが想像つかない、変数名の命名がアウト。
一文字変数名は基本的にアウト。forループのインデックス用に使うくらいにする。
(インデックス用だから$i
で、二重のループのときはさらに$j
を使ったりするなど。)
変数を初期化せずに使うの禁止。$count++;
って初期化してない変数でインクリメントとかびっくりよ。
パット見で$log0
と$log1
と$log3
が居て、役割や機能が変数名から想像つかない。
$e
も初期化せず足し算するの?
isset($_POST['time'])
が成り立たないと存在しない変数が発生するのもアウト。