我刚刚开始学习 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"
最佳答案
fgets
从流中获取一行,包括尾随换行符。 $nbr
因此是 "123\n"
,它不是数字。
您可以通过打印 strlen($nbr)
(是 2
)然后打印 ord($nbr[1])
来检查这一点打印 10
- 换行符的 ASCII 代码。
使用 trim($nbr)
删除换行符以及输入前后的附加空格。
关于php - 数值不是数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22782577/