我刚开始学习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“
答案 0 :(得分:3)
fgets
从流中获取一行,包括尾随的换行符。因此$nbr
为"123\n"
,不是数字。
您可以打印strlen($nbr)
(2
)然后ord($nbr[1])
打印10
- 换行符的ASCII代码来检查。
使用trim($nbr)
删除换行符,以及输入前后的其他空格。