Resultaat uit text file omzetten in Array
Ik ben op zoek naar een manier om uit een .txt-bestand enkele vragen en antwoorden te halen. Deze wil ik in een array zetten en vervolgens de vraag weergeven in een formulier, en vervolgens kijken als het opgegeven antwoord overeenkomt met het antwoord uit het tekstbestand.
Ik heb dus file.txt met volgende informatie:
Vraag 1:Antwoord 1
Vraag 2:Antwoord 2
Vraag 3:Antwoord 3
Dit wil ik uitlezen, en vervolgens op mijn pagina het volgende formulier plaatsen:
Vraag 1
input1: _____________
Vraag 2
input2: _____________
Vraag 3
input3: ____________
Na een check wil ik dan kijken als input1 overeenkomt met Antwoord1, input 2 met Antwoord2 enzovoort. Ik heb al iets geprobeerd, maar krijg allemaal fouten en rare meldingen. Wellicht klopt er dus niet veel van. Iemand die me hierbij kan helpen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
$fileOpen = fopen('file.txt', 'rb');
$fileRead = fread($fileOpen, filesize('file.txt'));
fclose($fileOpen);
$splitLines = explode("\n", $fileRead);
$questions[] = array();
$splitValue = ":";
foreach($splitLines as $string) {
$row = explode($splitValue, $string);
array_push($questions, $row);
}
print_r($questions);
if($_POST['submit']) {
$answer = $_POST['answer'];
foreach($questions as $questionNumber => $value) {
if($answer[$questionNumber] != $value[1]) {
echo "Wrong!<br />";
} else {
echo "Correct!<br />";
}
}
} else {
?>
<form action=<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?> method='post'>
<?php
$i = 0;
foreach ($questions as $questionNumber => $value) { ?>
<label for="answer[<?php echo $questionNumber; ?>]"><?php echo $value[0]; ?></label><br />
<input type="text" id="answer[<?php echo $questionNumber; ?>]" name="answer[<?php echo $questionNumber; ?>]" value="" /><br />
<?php
if(++$i == 2) break;
}
?>
<input type="submit" name="submit" value="Controleer">
</form>
<?php
}
?>
$fileOpen = fopen('file.txt', 'rb');
$fileRead = fread($fileOpen, filesize('file.txt'));
fclose($fileOpen);
$splitLines = explode("\n", $fileRead);
$questions[] = array();
$splitValue = ":";
foreach($splitLines as $string) {
$row = explode($splitValue, $string);
array_push($questions, $row);
}
print_r($questions);
if($_POST['submit']) {
$answer = $_POST['answer'];
foreach($questions as $questionNumber => $value) {
if($answer[$questionNumber] != $value[1]) {
echo "Wrong!<br />";
} else {
echo "Correct!<br />";
}
}
} else {
?>
<form action=<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?> method='post'>
<?php
$i = 0;
foreach ($questions as $questionNumber => $value) { ?>
<label for="answer[<?php echo $questionNumber; ?>]"><?php echo $value[0]; ?></label><br />
<input type="text" id="answer[<?php echo $questionNumber; ?>]" name="answer[<?php echo $questionNumber; ?>]" value="" /><br />
<?php
if(++$i == 2) break;
}
?>
<input type="submit" name="submit" value="Controleer">
</form>
<?php
}
?>
De bedoeling is dus om te kijken als de bezoekers het juiste antwoord op de vraag weten.
Gewijzigd op 24/12/2014 00:59:10 door Thijs Penny
http://www.phphulp.nl/php/forum/topic/script-review-galgje-met-php/96236/
Ongeveer hetzelfde wat jij nodig hebt
Kijk hier eens: Ongeveer hetzelfde wat jij nodig hebt
php file() functie.
In iedergeval kun je om te beginnen veel makkelijker de regels uit het bestand en direct in een array inlezen met de Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
$lines = file('file.txt');
$splitValue = ':';
$questions = [];
foreach($lines as $string) {
$questions[] = explode($splitValue, $string);
}
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$answer = $_POST['answer'];
foreach($questions as $questionNumber => $value) {
if(trim(strtolower($answer[$questionNumber])) == trim(strtolower($value[1]))) {
echo $value[0] . ' == ' . $value[1] . ': <span style="color:green; font-weight:bold;">Correct!</span><br>';
} else {
echo $value[0] . ' == ' . $value[1] . ': <span style="color:red; font-weight:bold;">Wrong!</span><br>';
}
}
} else {
?>
<form action="" method='post'>
<?php
$i = 0;
foreach ($questions as $questionNumber => $value) { ?>
<label for="answer<?php echo $questionNumber; ?>"><?php echo $value[0]; ?></label><br />
<input type="text" id="answer<?php echo $questionNumber; ?>" name="answer[]" /><br />
<?php
//if(++$i == 2) break;
}
?>
<input type="submit" value="Controleer">
</form>
<?php
}
?>
$lines = file('file.txt');
$splitValue = ':';
$questions = [];
foreach($lines as $string) {
$questions[] = explode($splitValue, $string);
}
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$answer = $_POST['answer'];
foreach($questions as $questionNumber => $value) {
if(trim(strtolower($answer[$questionNumber])) == trim(strtolower($value[1]))) {
echo $value[0] . ' == ' . $value[1] . ': <span style="color:green; font-weight:bold;">Correct!</span><br>';
} else {
echo $value[0] . ' == ' . $value[1] . ': <span style="color:red; font-weight:bold;">Wrong!</span><br>';
}
}
} else {
?>
<form action="" method='post'>
<?php
$i = 0;
foreach ($questions as $questionNumber => $value) { ?>
<label for="answer<?php echo $questionNumber; ?>"><?php echo $value[0]; ?></label><br />
<input type="text" id="answer<?php echo $questionNumber; ?>" name="answer[]" /><br />
<?php
//if(++$i == 2) break;
}
?>
<input type="submit" value="Controleer">
</form>
<?php
}
?>
Gewijzigd op 24/12/2014 10:09:47 door Frank Nietbelangrijk