var-dump 相关问题

var_dump是一个转储有关变量信息的PHP函数。

var_dump 或 print_r 和 html 编码

","","b","i","你好"); 打印_r($x); 回显“”; var_dump($x); 在 html 源中输出这个! 大批 ( [0] => <?php $x = array("<b>","<i>","b","i","<h1>hello</h1>"); print_r ($x); echo "<hr>"; var_dump ($x); 将其输出到 html 源代码中! Array ( [0] => <b> [1] => <i> [2] => b [3] => i [4] => <h1>hello</h1> ) <hr>array(5) { [0]=> string(3) "<b>" [1]=> string(3) "<i>" [2]=> string(1) "b" [3]=> string(1) "i" [4]=> string(14) "<h1>hello</h1>" } 显然,我可能会因此受到 XSS 攻击! 如何确保数组值经过 html 编码? 虽然这个问题有一个公认的答案,但我认为 David Morrow 的答案是最好/最简单/最实用的(使用 print_r true 标志): echo "<pre>".htmlentities(print_r($some_array, true))."</pre>"; 尽管如此,这是另一种使用输出缓冲的解决方案: <?php ob_start(); print_r($some_array); $buffer = ob_get_clean(); echo "<pre>".htmlentities($buffer)."</pre>"; ?> 我发现knittl的代码不起作用。我必须进行一些小更改才能使其正常工作,如下所示: array_walk_recursive($inputarray, function(&$v) { $v = htmlspecialchars($v); }); 现在这在 PHP5.3+ 中工作得很好 或者您可以将 print_r 保存到字符串中,然后使用设置为 true 的第二个参数对其进行转义。 $arr = array('<script>alert("hey");</script>'); $str = print_r($arr, true); echo htmlentities($str); 输出: Array ( [0] => <script>alert("hey");</script> ) 脚本未执行 这个 PHP 手册注释中描述了一个对我有用的函数。 他替换var_dump的函数实现为: function htmlvardump() { ob_start(); $var = func_get_args(); call_user_func_array('var_dump', $var); echo htmlentities(ob_get_clean()); } 这在 PHP 5.3+ 中对我有用。 (请注意,原始来源中有一个拼写错误)。 一个简单的解决方案是使用 array_walk_recursive: array_walk_recursive($inputarray, function(&$v) { $v = htmlspecialchars($v); }); echo <pre>; echo htmlspecialchars(print_r($key['value'], true)); echo '</pre>'; 我使用此代码从无sql数据库输出数组值(包含adsense代码)。 感谢 Knittl,这就是我的想法。 按照我想要的方式工作! <?php $x = array("tag1" => "<b>","tag2" => "<i>","tag3" => "b","tag4" => "i","tag5" => "<h1>hello</h1>"); echo "<hr><pre>"; blp_print_r ($x); echo "<hr>"; print_r($x); echo "</pre><hr>"; /* outputs this in the browser normal view new one... Array ( ['tag1'] => <b> ['tag2'] => <i> ['tag3'] => b ['tag4'] => i ['tag5'] => <h1>hello</h1> ) traditional one... Array ( [tag1] => [tag2] => [tag3] => b [tag4] => i [tag5] => hello ) */ function blp_print_r($inputarray){ echo "Array\n(\n"; echo "<blockquote>"; array_walk($inputarray,"html_encoder"); echo "</blockquote>"; echo ")"; } function html_encoder($current_val,$current_key){ echo "['" , htmlentities($current_key, ENT_QUOTES, "UTF-8") , "']", " => "; echo htmlentities($current_val, ENT_QUOTES, "UTF-8") , "\n"; } ?> 我发现这个页面非常有帮助,但我确实将函数修改为递归,walker 处理函数在回显键后检查值处的数组,然后回调该数组上的原始函数。我认为这使它成为真正的“递归 htmlentity 函数”,因此有了新名称...... function htmlentities_print_r( $inputarray ) { echo "<pre>" ; array_walk( $inputarray , "html_encoder" ) ; echo "</pre>"; } function html_encoder($current_val,$current_key){ echo "['" , htmlentities($current_key, ENT_QUOTES, "UTF-8") , "']", " => "; if ( is_array( $current_val ) ) { blp_print_r( $current_val ) ; } else { echo htmlentities($current_val, ENT_QUOTES, "UTF-8") , "\n"; } } 确实, print_r 为 true 的解决方案是最简单的解决方案。但我会这么做: $ret = htmlentities( print_r( $some_array, true ) ) $ret = str_replace( array("\n"), array('<br>'), $ret ); printf( "<br>Result is: <br>%s<br>", $ret ); 但这取决于你们所有人。

回答 9 投票 0

使用 echo 或 var_dump 循环打印给出三个值,但 dd() 只给出第一个值

我的查询中有一个匹配的行。 echo $结果给出 100 dd($结果) 给出 1 var_dump($result) 给出 int(1) int(0) int(0) 这里发生了什么? 相关代码: $结果= DB::table('答案'...

回答 3 投票 0

如何在变量中存储 var_dump 数据

我的控制台中有以下 var_dump 数据。我想将它们存储在变量中。 阵列(1){ [“上传”]=> 阵列(5){ [“姓名”]=> string(11) "profile.jpg" ...

回答 3 投票 0

How to get all variables inside a jinja templates?

我想在 php 中编写类似 var_dump() 的方法来打印出所有变量以用于调试目的。 如何从我的方法内部访问所有模板变量? {{ 倾倒() }} def Dump() -> 海峡: 研究...

回答 1 投票 0

检测 simpleXml 数组属性

我想我在这里遗漏了一些非常明显的东西,但是有人可以向我解释为什么我得到的是我的输出,而不是我在以下 var 转储中期望的输出: 这是原始的 xml: <

回答 3 投票 0

如何在PHP中转换一个嵌套的JSON数组[重复]。

我需要转换这个JSON:["理论",["理论", "相对论", "理论测试", "万物理论", "理论定义", "进化论", "心智理论", "死人理论","...。

回答 1 投票 -1

如何在PHP中将json转换为arry

hi,我需要迷惑这个(json)[“ theory”,[“ theory”,“相对论”,“ theory test”,“ theory of everything”,“ theory definition”,“ theory of theory”,“心智理论”,“死者理论”,“ ...

回答 1 投票 -1

我如何从stdObject获取数据

$ cpanel = new cPanel('username','pass','domain'); $ bandwidth_report = $ cpanel-> uapi('Bandwidth','query',array('grouping'=>“ domain | year”,'...

回答 1 投票 0

PHP:当我使用小于符号并与var_dump()函数结合使用时,没有可读的输出

为什么在PHP中,此代码段不返回可读输出,$ string =“ Hello World!”; var_dump($ string);返回“> Hello ...

回答 1 投票 -1

遇到错误,严重性:ilegal字符串偏移Codeigniter

在视图中,我尝试调用kriteria和sub kriteria:我尝试从tb_kriteria调用id_kriteria,nama_kriteria kriteria以获得标题,然后我为选项sub kriteria调用id_kriteria,namasubkriteria ...

回答 1 投票 0

PHP var_dump()如果不进行消毒,为什么字符串计数更大?

我想做一些检查,是否通过curl调用发布的字符串(json)以特定的子字符串开头。当我一直返回FALSE而不是TRUE时,我尝试对其进行调试。我首先...

回答 1 投票 0

我如何从数组中获取数组块?

我想将从系统中生成的xml数据转换为数组数组,并将其发送到我单独出售的平台的API系统。如果您可以查看并......>

回答 1 投票 0

VarDumper中的颜色字符串

当我使用VarDumper在dump()函数中输出日志时,有什么方法可以更改其输出的字符串中某些文本的颜色吗?我知道这不是...

回答 1 投票 1

完美解析字符串和编码就像var_dump函数一样[复制]

TLDR;我需要一些关于如何将任何编码重新编码为UTF-8的指导,即使输入中存在多个字符集我已经通过互联网进行了搜索,而且我在任何地方都找不到这样的东西......

回答 1 投票 0

具有实时或热重新加载的html格式的symfony / var-dumper

我使用symfony / var-dumper和html格式,我想知道是否有办法在线观看这个html文件,以免重新加载页面(live / hot reloading)。是否有现成的解决方案......

回答 1 投票 0

带回声输出的Var_dump

当使用var_dump和一个具有echo的函数时:输出为:HelloNULL我想知道NULL来自哪里...

回答 3 投票 1

使var_dump看起来很漂亮

我有一个简单的$ _GET []查询var set,用于在从DB下拉查询时显示测试数据。

回答 12 投票 106

如何编写自己的DD()函数与laravel相同?

我使用laravel很长一段时间,但目前我使用wordpress。我喜欢使用laravel的DD()函数。但是在wordpress中我只能使用这些,print_r(),var_dump(),var_export()....

回答 6 投票 7

PHP中一个更漂亮/信息丰富的Var_dump替代方案?

每个体面的PHP程序员都有一个print_r或var_dump包装器,他们使用,喜欢和分配快捷键,为什么我们不分享我们最喜欢的。

回答 24 投票 131

如何使用PHP获取实例ID

我正在寻找一种方法来获取PHP的给定对象/资源的实例ID,方法与var_dump()相同:var_dump(curl_init()); // curl var_dump类型的资源#1(curl_init()); //资源...

回答 5 投票 4

© www.soinside.com 2019 - 2024. All rights reserved.