php - 数值不是数字?

标签 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"

最佳答案

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

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

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

关于php - 数值不是数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22782577/

相关文章:

html - 输入框字体大小不起作用。不知道为什么

javascript - polymer :无法从纸张输入元件获取输入

c - 使用c语言fopen写入txt

php - 如何创建图表来显示数据库值?

php - 使用 js 在 php 中动态显示/隐藏 div 控件?

php - 从服务器文件夹中删除图像

php - CodeIgniter MySQL 查询不工作

linux - XCB 键输入拦截?

c - 将一个字节写入文件然后读取相同的字节是不一样的

c - 从数组中扫描数字