Resultaat uit text file omzetten in Array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Thijs Penny

Thijs Penny

24/12/2014 00:58:11
Quote Anchor link
Hallo PHPHulp!

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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
 
PHP hulp

PHP hulp

08/11/2024 16:08:52
 
G P

G P

24/12/2014 01:38:12
Quote Anchor link
Kijk hier eens: http://www.phphulp.nl/php/forum/topic/script-review-galgje-met-php/96236/
Ongeveer hetzelfde wat jij nodig hebt
 
Frank Nietbelangrijk

Frank Nietbelangrijk

24/12/2014 09:26:47
Quote Anchor link
In iedergeval kun je om te beginnen veel makkelijker de regels uit het bestand en direct in een array inlezen met de php file() functie.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.