PHP is_numeric()函数详解,PHP判断变量是否为数字或数字字符串,is_numeric()绕过

这篇具有很好参考价值的文章主要介绍了PHP is_numeric()函数详解,PHP判断变量是否为数字或数字字符串,is_numeric()绕过。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》

is_numeric() 可以检测「变量」是否为「数字」或数字字符串。

语法

bool is_numeric( $var )

参数

  • $var :需要检测的变量

返回值

布尔类型

  • 返回 true :整形、浮点型、整形字符串、浮点型字符串
  • 其他 false

一、基本使用

「整形」「浮点型」以及他们的字符串形式,都返回 true

实例:

var_dump(is_numeric(1));
var_dump(is_numeric(1.1));
var_dump(is_numeric('1'));
var_dump(is_numeric('1.1'));

输出:

bool(true)
bool(true)
bool(true)
bool(true)

二、16进制绕过

is_numeric() 会对「16进制」(0x开头)返回 true 。数值型和字符型都可以。

实例:

var_dump(is_numeric(0x7e));
var_dump(is_numeric('0x7e'));

输出:

bool(true)
bool(true)

绕过思路:把 '1 or 1' 这类payload转成16进制,再传给 is_numeric() ,实现绕过。


三、科学计数法绕过

is_numeric() 会对「科学计数法」(0e开头)返回 true 。数值型和字符型都可以。

并且,0e开头的值,强制转换成int类型后,都是1。

实例:

var_dump(is_numeric(0e123));
var_dump(is_numeric('0e123'));
echo (int)is_numeric(0e123).PHP_EOL;
echo (int)is_numeric(0e9999).PHP_EOL;
echo (int)is_numeric('0e123');

输出:

bool(true)
bool(true)
1
1
1

绕过思路:遇到 (int)is_numeric($_GET['a']) 这类情况时,可以使用传入 0exxx 格式的参数来绕过。

四、字符串

「数字」「字母」组合的字符串,无论是否以数字开头,都返回 false

实例:

var_dump(is_numeric('1a'));
var_dump(is_numeric('a1'));

输出:

bool(false)
bool(false)

五、is_int()和is_numeric()的区别

is_int() is_numeric() 都可以 “判断变量是否为数字”。

is_int() 必须是「整形」才返回 true ,其他类型都返回 false
is_numeric() 「浮点型」「数值型字符串」也返回 true

实例:

var_dump(is_numeric(1.1));
var_dump(is_int(1.1));
var_dump(is_numeric('1'));
var_dump(is_int('1'));

输出:

bool(true)
bool(false)
bool(true)
bool(false)

六、type_digit()和is_numeric()的区别

type_digit() is_numeric() 都可以 “判断变量是否为数字”。

type_digit() 只有在字符串中全是「数字」才会返回 true ,整型、浮点型、甚至包含正负符号的值都返回 false
is_numeric() 对整型、浮点型、以及包含正负符号的值都返回 true

实例:

var_dump(is_numeric('1'));
var_dump(ctype_digit('1'));

var_dump(is_numeric(1));
var_dump(ctype_digit(1));

var_dump(is_numeric('1.1'));
var_dump(ctype_digit('1.1'));

var_dump(is_numeric('-1'));
var_dump(ctype_digit('-1'));

var_dump(is_numeric('+1'));
var_dump(ctype_digit('+1'));

输出:文章来源地址https://www.toymoban.com/news/detail-512951.html

bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)

到了这里,关于PHP is_numeric()函数详解,PHP判断变量是否为数字或数字字符串,is_numeric()绕过的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C 语言 输入一个正整数,程序会利用is_prime函数判断该数是否是素数,如果是素数,输出“%d是素数“,否则输出“%d不是素数“。

    ``` 输入一个正整数,程序会利用is_prime函数判断该数是否是素数,如果是素数,输出\\\"%d是素数\\\",否则输出\\\"%d不是素数\\\"。

    2024年02月11日
    浏览(56)
  • JS判断输入值是否为正整数,判断变量是否为数字

    这篇文章将讨论如何确定一个变量是否代表 JavaScript 中的有效数字。 1.JS中的test是原来是JS中检测字符串中是否存在的一种模式,JS输入值是否为判断正整数代码: 扩展: 附判断数字、浮点的正则表达:  ”^\\\\d+$” //非负整数(正整数 + 0) “^[0-9]*[1-9][0-9]*$” //正整数 “^(

    2024年02月06日
    浏览(79)
  • Python如何判断变量是否存在?

    python中可以使用locals()、dir()、vars()等函数来查询变量是否存在。 1、 locals() 函数将当前位置的所有局部变量作为字典返回。 2、当 dir() 函数不带参数时,它返回当前范围内的变量、方法和定义类型的列表;当它接受参数时,它返回参数的属性和方法列表。 3、vars() 函数返回对

    2024年02月11日
    浏览(62)
  • 如何判断两个随机变量是否独立,同分布

    独立两个判断条件 1,设(x,y)的密度函数为f(x,y),其定义域是矩形区域。联合密度函数的区域必须为矩形区域,这很重要。可以证明一波,若x的范围为(0,1),y的范围为(3,5)如果他们相互独立,那么组成的联合密度函数,每一个x,都可以对应所有的y,所以组成的范围为矩

    2024年02月11日
    浏览(58)
  • 浅谈Java判断变量是否为空的问题

      Java的StringUtil.isEmpty(str)和\\\"\\\".equals(str)都是用来判断字符串是否为空的方法,但它们有一些不同的使用场景。 📌 StringUtil.isEmpty()   StringUtil.isEmpty(str)通常用于判断字符串是否为null或者长度为0,如果字符串为null或者长度为0,则返回true,否则返回false。这种方式适用于需

    2023年04月11日
    浏览(111)
  • JavaScript判断变量是否为undefined的两种写法

    可以使用 typeof 操作符来判断一个变量是否为 undefined 类型 也可以使用严格相等运算符 === 来判断一个变量是否为 undefined 注意: 不要使用 == 运算符来判断一个变量是否为 undefined 因为它会在比较之前进行 类型转换 ,可能导致意外的结果。 如果要判断一个变量是否未定义(既

    2024年02月14日
    浏览(50)
  • PHP开发日志 ━━ 不同方法判断某个数组中是否存在指定的键名,测试哪种方法效率高

    我们可以用 isset($arr[\\\'a\\\']) 或者 array_key_exists(\\\'a\\\', $arr) 来判断 \\\'a\\\' 键名是否存在与 $arr 数组。 那么这两种方式哪个运行速度快呢? 不多废话了,现在我们写一段代码来测试一下: 结论是 isset() 更胜一筹。

    2024年02月02日
    浏览(82)
  • Mysql存储-变量、函数、游标、判断、循环

    1、介绍: 存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程思想上很简单,就是数据库SQL语言层面的代码封装与重用 2、特点 封装、复用 可以接

    2024年02月07日
    浏览(42)
  • MATLAB知识点:isempty函数(★★★★☆)判断数组是否为空

    ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章:课后习题讲解中拓展的函数 在讲解第三章课后习题的过程中,我给大家拓展了一些讲义中没有

    2024年04月22日
    浏览(53)
  • 【C语言】C语言实现一个函数 判断是否是素数

           欢迎来到南方有乔木的博客!!! 博主主页: 点击点击!戳一戳!! 博主QQ: 1636758318 博主简介: 一名在校大学生,正在努力学习Java语言编程。 穷且意坚,不坠青云之志 ,希望能在编程的世界里找到属于自己的光。 跪谢帅气or美丽的朋友们能够帮我点赞! 请对文中

    2024年02月04日
    浏览(85)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包