iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP is_numeric()函数详解,PHP判断变量是否为数字或数字字符串,is_numeric()绕过
  • 713
分享到

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

php网络安全人工智能 2023-09-05 18:09:05 713人浏览 独家记忆
摘要

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

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

is_numeric

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)111

绕过思路:遇到 (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'));

输出:

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

来源地址:https://blog.csdn.net/wangyuxiang946/article/details/131211111

--结束END--

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

本文链接: https://www.lsjlt.com/news/395837.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP is_numeric()函数详解,PHP判断变量是否为数字或数字字符串,is_numeric()绕过
    「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 ...
    99+
    2023-09-05
    php 网络安全 人工智能
  • PHP中怎么判断变量是否为数字或数字字符串
    这篇文章主要介绍PHP中怎么判断变量是否为数字或数字字符串,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在PHP的日常使用过程中经常需要判断变量是否为数字或数字字符串,PHP为我们提供了一个内置函数is_numeri...
    99+
    2023-06-14
  • PHP中的is_numeric()函数:如何检查变量是否为数字
    在PHP中,经常需要对变量进行数据类型的判断和验证。其中,判断一个变量是否为数字类型就是一个非常常见的操作。PHP提供了一个内置函数is_numeric()来检查变量是否为数字类型。is_numeric()函数的使用格式如下:bool is...
    99+
    2023-11-03
    变量 is_numeric() 检查数字
  • php如何判断是否为整数字符串
    这篇文章主要介绍了php如何判断是否为整数字符串的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php如何判断是否为整数字符串文章都会有所收获,下面我们一起来看看吧。两种判断方法:1、用is_numeric()和...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作