今天,同学问我一个问题,如下:var_dump("1" == "1e0"); 的结果是什么. 我的第一反应,答案是false.因为很明显的要比较的是两个字符串,而字符串比较时,只需比较其内容即可.很明显, 两个字符串的内容并不一样,当然是false了. 然而,我又注意到要比较的字符串中存在一个纯数字字符串"1",那根据规则,当要比较的是两个纯数字字符串时要转换成数值型来比较.这里只有一个.所以仍应该安字符串来比较,结果仍为false. 但实际运行…
目录 PHP开发基础 运算符.表达式和流程控制语句 数组和字符串 函数 PHP与Web页面交互 PHP操作MySQL数据库 面向对象基础 期间看到的几篇有意思的博客 为什么 var_dump("1" == "1e0");的结果为true PHP开发基础 PHP标记符(在PHP7中,仅支持标准标记和短标记) 标记类型 开始标记 结束标记 开启项 标准标记 <?php ?> 无 短标记 <? ?> short_open_tag=on ASP式标记…
这篇文章主要讲解一下 PHP 使用比较运算符容易出错的地方 $a == $b 等于 TRUE,如果类型转换后 $a 等于 $b.$a === $b 全等 TRUE,如果 $a 全等于 $b,并且它们的类型也相同. var_dump() 返回结果: boolean true 如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换为数值并且比较按照数值来进行. 此规则也适用于 switch 语句.当用 === 或 !== 进行比较时则不进行类型转换,因为此时类型和数值都要比对. 字…
1.使用 echo 语句       使用 echo  可以打印变量和内容,其他可以是系统变量,也可以是HTML代码,也可以是一个PHP表达式,如下示例:                $a = "12345";    //  变量赋值                $b = "this is string";                // 下面分别打印显示两个变量内容               echo $a ;               echo $b…
前言 PHP是一种通用的开源脚本语言,它的语法混合了C,Java,以及Perl等优秀语言的语法.除此之外,它还提供了大量的函数库可供开发人员使用.但是,如果使用不当,PHP也会给应用程序带来非常大的安全风险. 在这篇文章中,我们将会对PHP应用程序中经常会出现的一些问题进行深入地分析,尤其是当我们使用“==”(比较运算符)来进行字符串比较时,可能会出现的一些安全问题.虽然近期有很多文章都围绕着这一话题进行过一些探讨,但我决定从“黑盒测试”的角度出发,讨论一下如何利用这个问题来对目标进行渗透和攻击…
PHP比较运算符出现的频率实在是太高了,尤其是 ==if(a == b){// do something}但是,你真的掌握了 == 了吗?细节很重要!来看下面的代码,说出你认为正确的答案var_dump('  123fg456'==123);var_dump('some string' == 0);var_dump(123.0 == '123d456');var_dump(0 == "a");var_dump("1" == "01");var_d…
lottery 题目分析 题目给了一个彩票网站,经过页面的探索,没有发现明显漏洞,进行目录扫描,发现该站存在.git文件 猜测存在源码泄露,使用githack利用: 获得网页源码,进行源码分析 源码审计 // api.php function buy($req){ require_registered(); require_min_money(2); $money = $_SESSION['money']; $numbers = $req['numbers']; // 获得用户输入数字 $win…
× 目录 [1]文件类型 [2]文件属性 [3]目录路径[4]目录遍历[5]目录统计[6]目录增删[7]目录复制[8]文件操作[9]文件内容 前面的话 在程序运行时,程序本身和数据一般都存在内存中,当程序运行结束后,存放在内存中的数据被释放.如果需要长期保存程序运行所需的原始数据,或程序运行产生的结果,就需要把数据存储在文件或数据库.一般地,小型数据存储在文件中,海量数据存储在数据库中.本文主要介绍php中目录和文件的基本操作 文件类型 文件一般指存储在外部介质上具有名字(文件名)的一组相关数据…
× 目录 [1]总括 [2]算术运算符 [3]赋值运算符[4]位运算符[5]比较运算符[6]错误控制[7]逻辑运算符[8]字符串连接[9]数组运算符 前面的话 运算符是可以通过给出的一或多个表达式来产生另一个表达式的东西.与javascript类似,php也拥有类似的运算符语法,本文将详细介绍php运算符 [注意]关于javascript运算符语法移步至此 总括 运算符可按照其能接受几个值来分组.一元运算符只能接受一个值,例如 !(逻辑取反运算符)或 ++(递增运算符). 二元运算符可接受两个值…
代码覆盖分析能在请求时让你知道脚本哪一行(或哪一段)在执行. 相关设置 xdebug.coverage_enable 类型: boolean, 默认值: 1, 始于 Xdebug >= 2.2 如果设为0, Xdebug不会设置内置结构来允许代码分析,这能加速xdebug快些,不过代码覆盖分析将不会工作. 相关函数 boolean xdebug_code_coverage_started() 返回布尔值查看代码覆盖分析是否已经开始. Example: <?php var_dump(xdebug…