首页
学习
活动
专区
圈层
工具
发布

python 实现 php 的 var_dump 功能

node.js也是),不过过程中总遇到些问题,不管是web.py还是django,开发起来确实没用php方便,毕竟存在的时间比较短,很多不完善的地方。    ...比如我在调试php中最常用的函数,var_dump,在python里找不到合适的替代函数。...php中var_dump是一个特别有用的函数,它可以输出任何变量的值,不管你是一个对象还是一个数组,或者只是一个数。...1, in TypeError: vars() argument must have __dict__ attribute     所以后来几经寻找,找到一个个比较好,功能能够与var_dump...,可以参考:https://github.com/sha256/python-var-dump     说一下pprint这个函数,他是一个人性化输出的函数,会将要输出的内容用程序员喜欢的方式输出在屏幕上

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

    PHP filter_var 函数绕过

    PHP filter_var 函数绕过 今天在日报看到了有关PHP函数绕过的文章就去学习了一下,但是有点尴尬的是文章是纯英文的直接翻译有很多地方会导致理解出问题,所以最后硬着头皮通过看原文学习, 所以这也可以说是一个简单的翻译文章吧..., 原文见PHP filter_var shenanigans 。...---- 关于filter_var函数 在官方文档中的介绍: 大概就是可以使用php内置的一些过滤器对字符串进行检验, 起初我看官方文档和一些代码示例也还是挺懵的, 不过了解了第二个filter参数之后对这个函数的了解就简单很多了...接下来看一下filter_var函数的工作源码: void php_filter_validate_domain(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ {...正如我们所看到的,这仅在以下情况下才会进行检验: s小于 e。 简单来说:如果使用 PHP 的 filter_var函数和传递给函数的值太长,和参数 l然后包装为零,将不执行检查。

    1K30

    PHP 中 var_export、print_r、var_dump 调试中的区别

    PHP_EOL, FILE_APPEND); file_put_contents("index.log", var_dump($n) ....≈ print_r var_dump 2、调试的时候,调用 var_export、print_r、var_dump 的时候, 不用 在前加 echo 。...3、var_export,print_r 的 第二个参数为true则返回值。var_dump 不支持 ,所以用 file_put_contents 输出调试的时候不要用 var_dump。...4、推荐开发环境的调试直接使用 var_dump,可以获得详细的调试信息和代码行数定位;生产环境的调试使用 var_export 或 print_r,第二个参数记得设置为 true 转为返回输出值,而不是直接输出到前端影响线上...总结 以上所述是小编给大家介绍的PHP 中 var_export、print_r、var_dump 调试中的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

    1.1K20

    php中echo、print、print_r、var_dump、var_export区别

    (3) var_dump()判断变量的类型与长度,并输出变量的数值。如果是数组和对象,将递归展开值,通过缩进显示其结构。能够打印布尔和NULL。...(4) var_export()和var_dump()类似,其返回合法的php代码,其返回值可以赋值给php变量。...(5) var_dump()可以打印多个变量,中间用逗号隔开;print_r()和var_export()打印一个变量,第二个参数设定为true,将打印内容返回。...(2)print_r()和var_export()打印整型、字符串外,还能打印数组、对象,以键值对形式打印数组、对象。var_export()还可打印布尔值。...(3)var_export()在第二个参数设置true,不会打印变量,而是将其以字符串形式返回,返回值可以赋值给php变量。

    2.1K50

    PHP代码审计02之filter_var()函数缺陷

    前言 根据红日安全写的文章,学习PHP代码审计审计的第二节内容,题目均来自PHP SECURITY CALENDAR 2017,讲完这个题目,会有一道CTF题目来进行巩固,外加一个实例来深入分析,想了解上一篇的内容...> 这一关用的是PHP的一个模板引擎Twig,考察的是XSS漏洞,也就是跨站脚本攻击。虽然程序使用了escape和filter_var()两个过滤方法,但是。还是可以被绕过的。...下面我们来看第二处过滤,是在上面代码第20行,是用filter_var()来进行过滤,下面我们来看看PHP手册对这个函数的定义: ? 具体参数设置如下表: ?...CTF练习 通过上面的分析,是不是对filter_var()函数有了一定的了解呢,让咱们用一道CTF的题目来巩固一下吧。这道题也是因为filter_var被绕过,导致命令执行。看下面代码。 php $url = $_GET['url']; //检查是否是合法的URL if (isset($url)&&filter_var($url,FILTER_VALIDATE_URL

    2.5K42

    请注意PHP程序里的敏感信息

    简单点来说就是你不想让别人知道的信息,比如说数据库的地址,用户名,密码等等,此类信息往往知道的人越少越好。 通常,PHP程序里的配置文件大致如下所示: <?...[DATABASE_PASSWORD] = e1bfd762321e409cee4ac0b6e841963c 需要说明的一点是,这个设置必须放在主配置文件php-fpm.conf里,不能放到include...指令设置的子配置文件里,否则会报错:「Array are not allowed in the global section」;另外一点,虽然是通过env设置的,但结果还是在_SERVER里,而不是_ENV...… 通过nginx和php-fpm配置文件来解决问题的话,有一个缺点,仅对Web有效,如果通过命令行来运行,那么无法在$_SERVER里获取相关信息,不过这不算什么难事儿,只要写个公共的脚本正则匹配一下...如果你使用hidef的话,需要注意一点,hidef定义的常量通过phpinfo函数可以一览无遗,为了安全性,你应该在配置文件php.ini里禁用相关函数:「disable_functions = phpinfo

    1.5K30

    PHP代码审计Day2 - filter_var函数缺陷

    函数来过滤 nextSlide 变量,且用了 FILTER_VALIDATE_URL 过滤器来判断是否是一个合法的url,具体的 filter_var 定义如下: filter_var : (PHP...5 >= 5.2.0, PHP 7) 功能 :使用特定的过滤器过滤一个变量 定义 :mixed filter_var ( mixed $variable [, int $filter = FILTER_DEFAULT...(下图第3-4行代码),如果存在其中的某一个键,并且符合 filter_var($uri, FILTER_SANITIZE_URL) 和 parse_url($uri, PHP_URL_PATH) ,则直接将...根据上面的分析,当我们访问这个并不存在的链接时,程序会调用404模板页面,然后调用 current_url 函数来获取当前用户访问的文件名,也就是最后一个 / 符号后面的内容,所以最终payload里的...> // f1agi3hEre.php php $flag = "HRCTF{f1lt3r_var_1s_s0_c00l}"?

    1.5K20

    let 与 var 的区别

    bug收集:专门解决与收集bug的网站 网址:www.bugshouji.com 01 声明后未赋值,表现相同 let、var申明变量未赋值,都输出undefined....console.log(letTest); //输出undefined }()); 02 使用未声明的变量,表现不同 使用var申明的变量,会进行提升,而let申明的变量,则不会提升 所以,有如下结果...'; }()); 03 重复声明同一个变量时,表现不同 var可以重复申明相同的变量,后面的会覆盖前面的 let不可以重复申明相同的变量,会报错,变量已经存在 'use strict'; (function...(注意要注释掉上面letTest变量的重复声明才能运行) console.log(letTest); }()); 04 变量作用范围,表现不同 var只全局变量与局部变量之分,没有块级作用域 let...,内部"{}"中声明的letTest和外部的letTest不是同一个变量 }()); 05 经典例子 使用 var 定义变量 i ,循环体中使用 setTimeout 输出 i , 代码如下: for(

    59020

    var和letconst的区别

    let和 const是 ES6 新增的命令,用于声明变量,这两个命令跟 ES5 的 var有许多不同,并且 let和 const也有一些细微的不同,再认真阅读了阮一峰老师的文档后,发现还是有一些不知道的细节.../ 想打印外层的时间作用域 if (false) { var tmp = 'hello world'; // 这里声明的作用域为整个函数 } } f(); // undefined var...undefined ES5 时使用 var声明变量,经常会出现变量提升的现象。...// var 的情况 console.log(foo); // 输出undefined var foo = 2; // let 的情况 console.log(bar); // 报错ReferenceError...p[0]='不报错' p2.name ='不报错' p =['报错'] p2 ={ name:'报错' } const p ='不能改变'; p ='报错' 总结: 再总结一下,看到这些名词,脑子里应该会有对应的理解

    46910

    var、let、const的区别

    var 学过JavaScript的都很熟悉,用来声明一个变量。 let、const 是ECMAScript 6中新增的命令。...(x); // expected output: 2 作用域: 用 var 声明的变量的作用域是它当前的执行上下文,它可以是嵌套的函数,或者对于声明在任何函数外的变量来说是全局。...它的用法类似于var,但是所声明的变量,只在 let 命令所在的代码块内有效。...然后在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值。这表明,let声明的变量只在它所在的代码块有效。 for循环的计数器,就很合适使用let命令。...// var 的情况 console.log(foo); // 输出undefined var foo = 2; // let 的情况 console.log(bar); // 报错ReferenceError

    68421

    PHP中的输出:echo、print、printf、sprintf、print_r和var_dump

    大家在面试中,经常会被问到的问题: 请简要说明PHP的打印方式都有哪些? 或者直接点问: 请说明echo、print、print_r的区别 看着很简单,一般会出现在初中级的笔试题中。...** Array ( [0] => a [1] => b [3] => c [show] => d ) */ var_dump...和var_exports var_dump也是非常常用的一个函数,用来显示结构信息,包括类型与值,数组对象都会展开,用缩进表示层次。...var_exports与之不同的地方在于var_exports返回的内容是正常的PHP代码,可以直接使用,并且有和print_r类似的第二个return参数,作用也类似。...$str = [ "a", 1 => "b", "3" => "c", "show"=>'d' ]; var_dump($str); // 输出 /** array

    2.8K31
    领券