需要帮助与一个简单的闪存卡PHP脚本


Need assistance with a simple Flash Card PHP script

我想写一个简单的PHP脚本,就像一组闪存卡。我想让脚本提示我(通过命令提示符)有一个问题,然后一旦我准备好了,然后我按回车,它显示了我的答案。然后我按回车键,它就会显示下一个问题,等等。

我已经编写了下面的脚本,但是当我第一次按Enter时,它会一直通过数组,然后一次完成。我想让它在每个问题和答案之间暂停输入。

$questionsandanswers = array(
"What is 1 plus 1?",
"2",
"What is 2 plus 2?",
"4",
);
foreach ($questionsandanswers as $qa) {
    echo $qa . "'n";
    $handle = fopen ("php://stdin","r");
    $line = fgets($handle);
    if ($line) {
        echo $qa . "'n";
        fclose($handle);
    }
}

您可以使用-a选项启动PHP,以便将其置于交互式shell中。然后,在数组中格式化您的问题/答案,如key => value,以便能够检查输入的答案是否正确。最后打开循环外的php://stdin

。:

user$ php -a
Interactive mode enabled
php > $handle = fopen("php://stdin", 'r');
php > $questionsandanswers = array(
php (     "What is 1 plus 1?" => 2,
php (     "What is 2 plus 2?" => 4,
php (     "What is... your favorite color?" => "Blue. Oh no... Red !"
php ( );
php > foreach ($questionsandanswers as $key => $value) {
php {     echo $key . "'n";
php {     $answer = fgets($handle);
php {     if ($answer == $value) {
php {         echo "Correct !'n";
php {     } else {
php {         echo "Wrong...'n";
php {     }
php { }
What is 1 plus 1?
2
Correct !
What is 2 plus 2?
4
Correct !
What is... your favorite color?
Green
Wrong...

玩得开心!=)

编辑

您也可以在文件(Q_A_script.php)中编写脚本:

<?php
$handle = fopen("php://stdin", 'r');
$questionsandanswers = array(
    "What is 1 plus 1?" => 2,
    "What is 2 plus 2?" => 4,
    "What is... your favorite color?" => "Blue. Oh no... Red !"
);
foreach ($questionsandanswers as $key => $value) {
    echo $key . "'n";
    $answer = fgets($handle);
    if ($answer == $value) {
        echo "Correct !'n";
    } else {
        echo "Wrong...'n";
    }
}
fclose($handle);
?>

并像从命令行启动其他PHP脚本一样启动它:

php ./Q_A_script.php