从PHP代码中删除var_dump
我们有一个很大的代码库,并且经常会突然出现一个用于测试且未被删除/注释的var_转储。使用XDebug()有一个混乱的解决方案,但可能有一些巧妙的方法可以在运行时用PHP完成从PHP代码中删除var_dump,php,Php,我们有一个很大的代码库,并且经常会突然出现一个用于测试且未被删除/注释的var_转储。使用XDebug()有一个混乱的解决方案,但可能有一些巧妙的方法可以在运行时用PHP完成 另外,我不想通过regex修改或搜索代码。我尝试过使用我自己的var\u dump\u v2,但它很快就不再使用了。如果你有一个大型数据库,为什么不使用serialize()或json\u encode()?这将非常有用 但请注意,serialize()将为您提供类似以下内容的单线输出: 's:0:"";s:5:"valu
另外,我不想通过regex修改或搜索代码。我尝试过使用我自己的var\u dump\u v2,但它很快就不再使用了。如果你有一个大型数据库,为什么不使用
serialize()
或json\u encode()
?这将非常有用
但请注意,serialize()
将为您提供类似以下内容的单线输出:
's:0:"";s:5:"value";'
runkit_function_redefine('var_dump', '','');
因此,您需要学习serialize()的剖析才能使用它:如果您已经安装了PECL,那么实际上有很多方法可以做到这一点。如果在php.ini中将runkit.internal\u override设置为“1”,则可以使runkit能够覆盖PHPs内部函数 要删除var_dump函数,可以使用:
runkit_function_remove('var_dump');
在您的情况下,为了避免出现错误,您可能应该使用以下内容:
's:0:"";s:5:"value";'
runkit_function_redefine('var_dump', '','');
请看下面的图片
您可能还想看一看“”,这是另一个似乎提供了一个新功能的扩展。您可以使用猴子补丁 只需在文件的第一行定义名称空间,并定义函数var_dump
<?php
namespace monkey;
function var_dump($obj) {}
是否可以使用php.ini中的disable_functions操作来禁用生产服务器上的var_转储?我不确定该设置的结果是什么(即它是否因错误而失败,或是无提示地失败)。文档不太清楚
-参见“禁用功能”
还有一个覆盖功能:
<?php
override_function('var_dump', '$a', 'return 0;');
?>
和,serialize()
和json\u encode()
在大型数据库中使用时速度要快得多:我想你是想在另一个问题上发表这篇文章的,这正是我所寻找的,几乎无法相信它的存在