首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP内置函数的松散性和弱类型

1.PHP内置函数的松散性 1.1 strcmp strcmp(str1,str2); strcmp是php中的一个比较函数,如果str1大于str2,就会返回大于1的数值,如果str2大于str1,返回一个小于...0的数值,相等则等于0 5.2中先将两个参数转换成string类型 5.3.3中,如果是字符和数组比较,直接返回0 5.5中,如果不是string类型,则直接return 也就是说,如果当一道ctf题目要求使用...,不会立刻停止运行php程序,而是抛出warning,返回一个NULL或者False 当遇到ctf题目含有sha1函数做对比时,要考虑到这个不能处理数组的问题 题目地址:暂无(敬请关注 http://ctf.vfree.ltd...可是众所周知,md5的值是唯一性的,不同的值对应不同的md5,即便是查了一个字母,出来的md5值也会不一样,所以这一题就需要利用md5的弱比较,利用科学计数法,这里列举十个通过md5函数转换后时0e开头的字符串...> 结果输出:md5值不相等 仔细看第4行的两个等于号变成了三个等于号,也就是说会比较num1和num2的数据类型是否想等,很明显,一个字符串,一个数字,固然不相等,此时,根据上面讲到的md5函数的松散性

80010

关于php递归函数内存溢出的问题

简单写一个递归函数: echo '运行前内存:' . round(memory_get_usage() / 1024 / 1024, 2) . ...'MB', PHP_EOL; recursive(); function recursive($i=1000){     if ($i<=0){         return false;     }...'MB', PHP_EOL;     recursive($i-1); } 可看到,内存占用将一直上升,直到运行完毕或者内存溢出强制退出,那么为什么会出现这样的情况呢?...主要是因为php的内存回收机制: php的垃圾回收机制 php只有在该函数执行完毕后才会进行回收,而该函数需要调用新的函数(递归),导致$data一直没有回收,直到执行完毕之后才会进行回收,所以造成了内存溢出...解决方案 解决方案也很简单,在使用完data之后,递归调用之前,进行unset销毁data即可: 本文为仙士可原创文章,转载无需和我联系,但请注明来自仙士可博客www.php20.cn

2.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    介绍一个很爽的 php 字符串特定检索函数---strpos()

    大家在用 php 开发的时候 是否 有遇到过,对于一个获取的字符串,如果想要特定检测它是否 含有某个特定的字符或者子字符串,总是找不到好方法,或者根本做不到,迫于无奈而使用foreach。...函数: strpos("","") 参数1:待检索的字符串或字符串变量 参数2:要检测是否被含有的子字符串 成功,返回首个字符的起始位置 没有找到就返回false 看到这里,估计你会有点疑问,博文标题明明写着...“php 字符串特定检索函数---strpos()”,但是却返回位置的。...不用急,逆向思维,有则,证明要检测的子字符串是被含有的,反之,没有。 下面个出个例子。 1 php 2 //$combine = array(); 3 //$combine = explode("马克思主义基本原理周一第10,11,12节{第2-17周}祁润兴乐育楼C206",",");

    98770

    php递归函数返回值返回不出的问题

    今天上班用到了递归函数求分类最上级,代码如下 //分类递归查找上级分类 function get_cat_pid($cat_id,$data){     $sql = "select cat_id,cat_name...$data);         return $data;     } } 控制器代码如下 var_dump(get_cat_pid($cat_parent_id,array())); 发现无论如何,函数的打印结果是正确的...        return;     }else{         return;     } } get_cat_pid($cat_parent_id,$a);   var_dump($a); 解决了递归函数传值不出的问题...经过了大神的教诲,现在终于明白为什么会返回null了 函数的return是返回给调用这个函数的值,当循环两次值为0时,会返回给循环第一次的本身函数,然后再返回给调用函数的... 大神原话 ?...这样我懂了两个知识点: 1,函数不管是if还是else都得写个return; 2,加强基础啊!!!! 顺便把前面没有return的地方改下

    4.5K20

    PHP变量类型测试函数的使用:二、is_int的用法

    昨天刚讲完PHP变量类型测试函数【is_bool】的用法,今天来讲讲PHP变量类型测试函数【is_int】的用法。...is_int is_int (字面意思) — 检测变量的类型是否为整数 is_int描述 is_int ( mixed $var ) : bool 「is_int 函数参数可以混合类型“混合类型:一个参数可以接受多种不同的类型...php //自定义函数isInteger //【ctype_digit — 做纯数字检测】 function isInteger($input){ return(ctype_digit(strval($...> 好了今天就分享到这里,拜拜我是你们的大朋友计算机爱好者大脸猫。 今日问题:【跑步能不能减肥?】...今日推荐: PHP丨PHP基础知识之变量类型测试函数的使用(1)is_bool的用法 PHP丨PHP基础知识之数据类型之间相互转换 PHP丨PHP基础知识之数据类型 今日分享:【Windows10怎么显示视频缩略图

    1.6K51

    PHP变量类型测试函数的使用:五、is_array的用法

    刚讲完PHP变量类型测试函数【is_string】的用法,今天来讲讲PHP变量类型测试函数【is_array】的用法。...is_array is_array — 检测变量是否是数组 is_array描述 is_array ( mixed $var ) : bool 「is_array 函数参数可以混合类型“混合类型:一个参数可以接受多种不同的类型...php $colors = array("red", "blue", "green"); if(is_array($colors)){ echo "变量colors 是一个数组"; }else{ echo...> 好了今天就分享到这里,拜拜我是你们的大朋友计算机爱好者大脸猫。 今日问题:【我在坚持跑步你呢?】...今日推荐: PHP变量类型测试函数的使用:二、is_int的用法 PHP变量类型测试函数的使用:三、is_float的用法 PHP变量类型测试函数的使用:四、is_string的用法

    1.2K31

    PHP变量类型测试函数的使用:四、is_string的用法

    刚讲完PHP变量类型测试函数【is_float】的用法,今天来讲讲PHP变量类型测试函数【is_string】的用法。...其他的变量类型测试函数的用法,点击头像查看更多; is_string is_string — 检测变量是否是字符串 is_string 描述 is_string ( mixed $var ) : bool...「is_string 函数参数可以混合类型“混合类型:一个参数可以接受多种不同的类型”;返回结果呢,肯定是返回布尔类型 TRUE或者FALSE」 如果 var 是 string 则返回 TRUE,否则返回...> 好了今天就分享到这里,拜拜我是你们的大朋友计算机爱好者大脸猫。 今日问题:【为什么你还在坚持跑步?】...今日推荐: PHP变量类型测试函数的使用:一、is_bool的用法 PHP变量类型测试函数的使用:二、is_int的用法 PHP变量类型测试函数的使用:三、is_float的用法

    1.3K11

    php配置-解决大数据超多字段的POST方式提交无法完全接受的问题

    例如:在盘点表的数据提交中出现了POST大量数据超多字段的将近2000个字段,部分字段没有接受;修改方法为修改php.ini 将max_input_var调大,该值默认为1000 max_input_vars...too large的错误 首先,将php的upload_max_filesize 和 post_max_size 调大 再将nginx的 client_max_body_size 调大 或将apache...//php配置 max_execution_time = 600        //设置页面访问超时时间为600s max_input_time = 600          //设置GET和POST等接收数据的最大超时时间为...Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) 注意这个不是因为memory_limit参数的问题...,即使memory_limit配置的最大也有可能出问题;关键在于代码循环中unset变量; (adsbygoogle = window.adsbygoogle || []).push({});

    1.2K30

    【Python】类型注解 ① ( Python 中的代码提示问题 | 函数名提示功能 | 函数参数类型提示功能 | 类型注解概念简介 | 类型注解语法 )

    一、Python 中的代码提示问题 1、PyCharm 函数名提示功能 创建一个 data 变量 , 为其赋值 list 列表容器类型对象 , 在调用 data 的 clear 函数时 , 输入 cl...类型 , 会自动提示 clear 方法名称 , 代码可以自动补全 ; 如果在 函数中 , 接收一个 list 类型的 变量 , 我们心里想的这个变量是 list 容器类型 , 但是并没有标注该变量的类型..., 此时想要调用其 clear 函数 , 没有任何提示 ; 当然调用也不会报错 ; 2、PyCharm 函数参数类型提示功能 在 Python 中 , 使用官方提供的函数库 , 如随机数函数 , "...; 自己定义一个 add 函数 , 将鼠标移动到 函数 括号中, 使用 Ctrl + P 快捷键 , 并不能给出参数类型提示 ; 这是因为 PyCharm 无法通过代码确定 add 函数中应该传入什么类型的参数...; 二、类型注解 1、类型注解概念简介 Python 中的 " 类型注解 " 是就是 在代码中 显式地指定 变量 / 函数参数 / 返回值 的类型 ; " 类型注解 " 可以 让团队中的其它 程序员

    64930

    PHP丨PHP基础知识之变量类型测试函数的使用:一、is_bool的用法

    昨天刚讲完PHP基础知识数据类型之间相互转换,今天就来讲讲PHP变量类型测试函数的使用。 在PHP编码过程中也非常常用到变量类型测试函数,那么现在我就来给大家讲解is_bool的基本知识。 ?...is_bool is_bool(字面意思) — 检测变量是否是布尔型 描述 is_bool ( mixed var):bool「is_bool函数参数可以混合类型“混合类型:一个参数可以接受多种不同的类型...php $a = false; $b = 0; // 因为 $a 是布尔型,所以结果为真 if (is_bool($a)) { echo "是的,变量a是布尔类型"; } // 因为 $b 不是布尔型,...> 注意is_bool打印结果时切忌不可用「echo」因为false的输出结果是空 好了今天就分享到这里,拜拜我是你们的大朋友计算机爱好者大脸猫。...PHP丨PHP基础知识之数据类型 PHP丨PHP基础知识之数据类型之间相互转换 你以为的PHP程序员,实际上的PHP程序员

    87711

    【作者投稿】PHP代码审计-sprintf函数中的安全问题

    新媒体管家 看到一篇WorldPress注入漏洞分析,其中sprintf单引号逃逸的思路很巧妙,在此对这类函数做一些简单的测试和总结。...sprintf & vsprintf sprintf是以一种规定的格式对不同的数据进行拼接,并将拼接结果返回,它并不像C语言里的printf一样直接输出,而是需要另外的输出函数,如echo将返回的结果输出出来...sprintf的用法可以在w3school的介绍中查看。至于vsprintf除了传参的时候使用了数组,其余的与sprintf一样。 自动类型转换 首先要注意的就是,sprintf的自动类型转换功能。...可以看到,当检测到第一个不属于%d类型的空格时,就会自动地去进行截断。所以从程序员的角度来讲,很容易忘记对%d输入的数据进行强制的类型转换,因为即使不手动转换,程序也能正常运行。...;最后的为数据类型 s表示字符串,d表示整数测试代码: <?

    1.9K00

    php List()函数及json_encode时无法转为数组的问题

    ​ list 函数实现 PHP中返回多个值(list并不是一个真正的函数,而是一种语言结构) 在众多的编程语言中,有很多都可以在函数中返回多个值,如 java,golang, 但是php却是不支持,虽然在...7.0 版本之后可以设置返回值的类型,但还是无法返回多个值,估计后面 php 的升级中会考虑这个问题....既然无法原生支持,那我们就自己实现,php内置了大量的函数可以使用,这也是php开发速度快的一个原因....PHP_EOL,$Lcolor. PHP_EOL,$Lprice. PHP_EOL; } //打印结果 coffer brown 20 //键为返回值里的变量,值为生成的新值....同样的也可以使用 list() 方法结合 each() 方法 实现 foreach 的功能 json_encode 返回时的问题 当需要返回json数据时, 我们通常会使用 json_encode 将对象或数组转为

    1.4K21

    SQL学习之SqlMap SQL注入

    sqlmap也是渗透中常用的一个注入工具,其实在注入工具方面,一个sqlmap就足够用了,只要你用的熟,秒杀各种工具,只是一个便捷性问题,sql注入另一方面就是手工党了,这个就另当别论了。...id=1” 默认使用level1检测全部数据库类型 sqlmap -u “http://www.vuln.cn/post.php?...id=1”  –dbms mysql –level 3 –dbs 查询有哪些数据库 sqlmap -u “http://www.vuln.cn/post.php?...–common-tables 检查存在共同表 –common-columns 检查存在共同列 User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数...–udf-inject 注入用户自定义函数 –shared-lib=SHLIB 共享库的本地路径 File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统

    3K50
    领券