2014-04-01 20 views
2

我刚开始学习PHP,我试图通过使用fopen来获得数字输入。该程序应该让用户输入一个数字,并回显该数字是奇数,偶数还是不是数字。事情是,不管我输入什么,它都不被视为一个数字。这里是我的代码数字值不是数字吗?

#!/usr/bin/php 
<?php 

echo "Entrez un nombre: "; 
$handle = fopen ("php://stdin","r"); 
$nbr = fgets($handle); 
if (is_numeric($nbr)) 
{ 
    if ($nbr % 2 == 0) 
     echo "Le chiffre $nbr est Pair\n"; 
    else if ($nbr % 2 == 1) 
     echo "Le chiffre $nbr est Impair\n"; 
} 
else 
    echo "'$nbr' n'est pas un chiffre\n"; 
?> 

在这一点上,我可以输入任何我想要作为输入,但得到的答复总是 “‘[我所输入] ’n'est PAS未CHIFFRE”

+0

'$ nbr'的内容? –

+5

'trim($ nbr)'在检查它是否是一个数字之前。 – DCoder

+0

只是var_dump($ nbr)给我们输出 –

回答

3

fgets从流中获取一行,包括尾随的换行符。 $nbr因此是"123\n",它不是数字。

您可以通过打印strlen($nbr)(是2)然后ord($nbr[1])打印10 - 换行符的ASCII码进行检查。

使用trim($nbr)删除换行符,以及输入前后的额外空白。

相关问题