数值不是数字?

时间:2014-04-01 10:02:21

标签: php input fopen

我刚开始学习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 un chiffre“

1 个答案:

答案 0 :(得分:3)

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

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

使用trim($nbr)删除换行符,以及输入前后的其他空格。