2016-10-11 75 views
2

我想寫一個簡單的PHP腳本,就像一組閃存卡。我想讓腳本(通過命令提示符)提示我一個問題,然後一旦我準備好了,然後我按下Enter鍵,並向我顯示答案。然後我按下Enter鍵,它向我顯示下一個問題,等等。需要一個簡單的閃存卡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); 
    } 
} 
+2

[交互式shell使用PHP]的可能副本(http://stackoverflow.com/questions/5794030/interact ive-shell-using-php) – JimL

回答

0

您可以與-a選項得到它在交互shell啓動PHP。然後,在數組中格式化您的問題/答案,如key =>值,以便能夠檢查輸入答案是否正確。最後在循環之外打開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

+0

我想出了我的問題。我正在使用舊版本的PHP來運行它,這就是爲什麼它不起作用。 – ZDog